BUDAへファイルを追加するサンプルコードである。
本サンプルコードではBUDAに対して以下のパスでファイルを追加し、その後、実際にファイルが追加されていることを確認するためにディレクトリの内容を表示する。
本サンプルコードではBUDAに対して以下のパスでファイルを追加し、その後、実際にファイルが追加されていることを確認するためにディレクトリの内容を表示する。
- <bluray.bindingunit.root> / <organization_id> / <disc_id> / BUDA.test
- <bluray.bindingunit.root> / <organization_id> / BUDA.test2
本サンプルコードが意図したとおりに動作するために必要な条件は以下のとおりである。
- bluray.Main.permという名称の署名つき
Main.java
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.io.File;
import javax.tv.xlet.Xlet;
import javax.tv.xlet.XletContext;
import org.bluray.ti.DiscManager;
import org.havi.ui.HScene;
import org.havi.ui.HSceneFactory;
import org.havi.ui.HScreen;
public class Main implements Xlet{
int x = 100, y = 100;
public void initXlet(XletContext context){
Graphics g = null;
try {
Font font = new Font(null, java.awt.Font.BOLD, 48);
HScene hs= HSceneFactory.getInstance().getFullScreenScene(
HScreen.getDefaultHScreen().getDefaultHGraphicsDevice());
hs.setFont(font);
hs.setVisible(true);
g = hs.getGraphics();
g.setColor(Color.white);
/* BUDA */
String buda_root = System.getProperty("bluray.bindingunit.root");
String orgID = (String) context.getXletProperty("dvb.org.id");
String discID = DiscManager.getDiscManager().getCurrentDisc().getId();
// BUDA内にファイル作成
File file = new File(buda_root+File.separator+orgID+File.separator+discID+File.separator+"BUDA.test");
file.createNewFile();
File file2 = new File(buda_root+File.separator+orgID+File.separator+"BUDA.test2");
file2.createNewFile();
// <disc_id>ディレクトリの下のファイルを表示
File dir = new File(buda_root+File.separator+orgID+File.separator+discID);
String[] flist = dir.list();
String s = "Files under /"+orgID+"/"+discID+"/: ";
for( int i = 0; i < flist.length; i++ ){
s += (flist[i]+" ");
}
g.drawString(s, x, y); y+=50;
// <organization_id>ディレクトリの下のファイルを表示
dir = new File(buda_root+File.separator+orgID);
flist = dir.list();
s = "Files under /"+orgID+"/: ";
for( int i = 0; i < flist.length; i++ ){
s += (flist[i]+" ");
}
g.drawString(s, x, y); y+=50;
} catch (Throwable thr){
}
}
public void startXlet(){ }
public void pauseXlet(){ }
public void destroyXlet(boolean unconditional){}
}
関連する項目
- HD Cookbook: xlets/tests/functional/VFSTestが参考になる
- Local Storageアクセスに必要な各種情報の取得: <bluray.bindingunit.root>, <organization_id>, <disc_id>の取得方法
- Local Storage: BUDAについての解説