全Titleのリストを取得するサンプルコードである。
Main.java
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import javax.tv.service.SIManager;
import javax.tv.service.Service;
import javax.tv.service.navigation.ServiceFilter;
import javax.tv.service.navigation.ServiceList;
import javax.tv.xlet.Xlet;
import javax.tv.xlet.XletContext;
import org.bluray.ti.Title;
import org.havi.ui.HScene;
import org.havi.ui.HSceneFactory;
import org.havi.ui.HScreen;
public class Main extends Container implements Xlet {
Graphics g = null;
int x=100, y=100;
public void initXlet(XletContext xc){
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);
// SIManagerを取得
SIManager sim = SIManager.createInstance();
// すべてのTitleをスルーするServiceFilterを実装してSIManagerにセット
ServiceList sl = sim.filterServices(new ServiceFilter(){
public boolean accept(Service arg0) {
return true;
}
});
for( int i = 0; i < sl.size(); i++ ){
Title t = (Title)sl.getService(i);
g.drawString( "Title["+i+"]:"+t.getName(), x, y ); y+=50;
}
} catch (Exception e){
}
}
public void startXlet(){}
public void pauseXlet(){ }
public void destroyXlet(boolean unconditional){ }
}
関連する項目
- Interactive TV Standards: SIManagerについて詳しい