0
我想訪問「發送到」菜單,該菜單包含了該操作的所有顯然已註冊的收件人。
在我的電話,這個菜單包含 *電子郵件 * PIN *短信 * MMS * BBM聯繫人訪問黑莓「發送到」菜單
我怎樣才能做到這一點從Java?
編輯:對於BB OS 4.0+平臺。
下面是我通過覆蓋getMenu方法到目前爲止使用的。
在getAppName()在模擬器上,我已經得到的值,如: * net_rim_bb_sendusingbluetoothapp * net_rim_bb_sendasemailapp * net_rim_bb_sendtomessengercontactapp
所以我想我會用一些與string.replace()有,但我當使用
reg.invoke(inv);
以下調用,雖然郵件應用程序啓動,但不會顯示主題或消息內容等參數。我應該如何着手設置?
此外,對於setData(),我只是傳入一個隨機字符串。 (我很確定這是我應該設置更有意義的東西的地方,但我不知道是什麼)。
public Menu getMenu(int instance) {
Menu menu = super.getMenu(instance);
final Registry reg = Registry.getRegistry(CLASSNAME);
ContentHandler[] handles = reg.forAction(ContentHandler.ACTION_SEND);
for (int i=0;i<handles.length;i++)
{
String name = handles[i].getAppName();
final Invocation inv = new Invocation();
inv.setURL(sendToUrl);
inv.setResponseRequired(false);
inv.setType(handles[i].getType(0));
inv.setID(handles[i].getID());
inv.setData(sendToUrl.getBytes());
inv.setAction(handles[i].getAction(0));
inv.setArgs(new String[]{sendToUrl});
MenuItem mit = new MenuItem(new StringProvider(name), i, i)
{
public void run() {
try {
reg.invoke(inv);
//inv.open(false);
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
};
//ContentHandlerMenu contentHandlerMenu
//= new ContentHandlerMenu(inv, reg, "Send to "+ name, i,i);
//menu.add(contentHandlerMenu);
menu.add(mit);
}
return menu;
}
@維克的答案是最好的你會得到。在OS 7之前,RIM沒有公開發送菜單。 –
@Scott,在黑莓應用程序(OS 5.0)的Twitter上查看,「發送到」菜單看起來像是從操作系統獲得的東西。如果不是,Twitter做得很好。 – Irwin
BlackBerry的Twitter應用程序(至少是剛剛稱爲「Twitter」的應用程序)實際上是由RIM開發的;)我的猜測是他們可以做任何他們想做的事情。 –