2017-01-24 8 views
2

私のアプリがSIMカード上のJava CardアプレットにAPDUを送信するアプリケーションを構築しようとしています。このapduが受信されると、私は自分のアプレットが特定のURLでブラウザを起動するようにします。 Java Card 3.0 Connected Editionでも同じことができます。 Java Card 2.2.2には、ブラウザを起動するためのプロアクティブなハンドラのオプションがありますが、見つけられません。私は誰かに私にそれをする方法を示すことができたら本当に感謝します。Java Card 2.2.2 SIMカードアプレットから特定のURLのブラウザを起動するには?

答えて

2

はい、可能です。しかし、多くの携帯電話(特にiOSを実行している携帯電話)ではこれがサポートされていないため、最初にTERMINAL PROFILEコマンドの出力を確認する必要があります。

import sim.toolkit.*; 
... 

private final static byte[] URL = { 
    (byte)'h', (byte)'t', (byte)'t', (byte)'p', (byte)':', (byte)'/', (byte)'/', (byte)'w', (byte)'w', (byte)'w', (byte)'.', (byte)'g', (byte)'o', (byte)'o', (byte)'g', (byte)'l', (byte)'e', (byte)'.', (byte)'c', (byte)'o', (byte)'m' 
}; 
private static final byte PROFILE_LAUNCH_BROWSER = (byte)70; 

private static final void browse() throws ToolkitException { 
    if (MEProfile.check(PROFILE_LAUNCH_BROWSER)) { //checking if the device supports this proactive command 
     ProactiveHandler proactiveHandler = ProactiveHandler.getTheHandler(); 
     proactiveHandler.init(ToolkitConstants.PRO_CMD_LAUNCH_BROWSER, (byte)0x00, ToolkitConstants.DEV_ID_ME); 
     proactiveHandler.appendTLV(ToolkitConstants.TAG_URL, URL, (short)0, (short)URL.length); 
     proactiveHandler.send(); 
    } else { 
     //feature not supported, throw an exception or do something like that 
    } 
} 
+0

ありがとうございます。あなたはプロアクティブなハンドラを持っているようです。これは、SIM Toolkitアプレットのアクションで応答します。 SIMの電源が入っているときにこの方法を試すことはできますか? –

+2

Downvote?本当に?どうして?次回にコメントを残してください。 – vojta

+1

@AbhirupGhosh申し訳ありませんが、私はあなたのコメントを理解していません....私は標準的な 'ProactiveHandler'を使用します。これは通常Java Cardを実行するSIMカードで利用できます。いつプロアクティブなコマンドを開始したいですか?いくつかのイベントの後?または、直接SEEK APIコールへの反応として? – vojta

関連する問題