Я хотел бы получить доступ к меню «Отправить», в котором представлены все, очевидно, зарегистрированные получатели этого действия.
На моем телефоне это меню содержит * Электронная почта * PIN * SMS * MMS * BBM Контакт
Как я могу сделать это с Java?
РЕДАКТИРОВАТЬ: Для платформ BB OS 4.0+.
Вот что я использовал до сих пор, переопределяя метод getMenu.
В getAppName () в симуляторе я получаю такие значения, как: * net_rim_bb_sendusingbluetoothapp * net_rim_bb_sendasemailapp * net_rim_bb_sendtomessengercontactapp
Так что я ожидаю использовать с этим некоторые String.replace (), но когда я буду использовать1011 *
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;
}