BBのネイティブブックに追加されたメニューアイテムから電話をかける方法(「ABCから電話」オプション)?
3257 次
1 に答える
8
プログラムで通話を開始する
RIM OS 4.7以下の場合は、Invokeを使用します。
PhoneArguments phoneArgs = new PhoneArguments(PhoneArguments.ARG_CALL,
"555-5555");
Invoke.invokeApplication(Invoke.APP_TYPE_PHONE, phoneArgs);
宣言されたRIMOS5.0の場合、 Phone.initiateCallメソッド を使用できます。
Phone.initiateCall(Phone.getLineIds()[0], "519-555-0100");
「 BlackBerryデバイスアプリケーションから電話をかける(複数回線環境) 」を参照してください。
カスタムメニュー項目をBlackBerryアプリケーションに追加します
「CallviaABC」アイテムをアドレス帳メニューに追加するには、次の手順を実行する必要があります。
- ApplicationMenuItemの拡張としてカスタムアイテムを実装する
- ApplicationMenuItemRepositoryを使用して、カスタムアイテムのインスタンスをメニューに追加します
- 実際のデバイスにデプロイする前に、コードに署名することを忘れないでください(最大2週間かかる場合があります)
次に、カスタムメニュー項目を実装します。
class AdressBookMenuItem extends ApplicationMenuItem {
Contact mContact;
public AdressBookMenuItem(int order) {
super(order);
}
public Object run(Object context) {
if (context instanceof Contact) {
mContact = (Contact) context;
if (0 < mContact.countValues(Contact.TEL)) {
String phone = mContact.getString(Contact.TEL, 0);
PhoneArguments args = new PhoneArguments(
PhoneArguments.ARG_CALL, phone);
Invoke.invokeApplication(Invoke.APP_TYPE_PHONE, args);
} else {
Dialog.alert("This contact has no phone number");
}
}
return null;
}
public String toString() {
return "Call via ABC";
}
}
次に、それをアドレス帳に追加します。
AdressBookMenuItem menuItem = new AdressBookMenuItem(0);
ApplicationMenuItemRepository repository =
ApplicationMenuItemRepository.getInstance();
long id = ApplicationMenuItemRepository.MENUITEM_ADDRESSBOOK_LIST;
repository.addMenuItem(id, menuItem);
すべてをまとめる
- アプリケーションを実行する
- 通話ボタンを押す
- 連絡先を選択
- メニューを開く
君は見るべきだ
名簿メニューhttp://img9.imageshack.us/img9/8175/callviaabc.png
Bold 9000シミュレーターでテスト済み
完全なコード:
import javax.microedition.pim.Contact;
import net.rim.blackberry.api.invoke.Invoke;
import net.rim.blackberry.api.invoke.PhoneArguments;
import net.rim.blackberry.api.menuitem.ApplicationMenuItem;
import net.rim.blackberry.api.menuitem.ApplicationMenuItemRepository;
import net.rim.device.api.ui.UiApplication;
import net.rim.device.api.ui.component.Dialog;
import net.rim.device.api.ui.component.LabelField;
import net.rim.device.api.ui.container.MainScreen;
public class CallIntegrate extends UiApplication {
public CallIntegrate() {
pushScreen(new Scr());
}
public static void main(String[] args) {
CallIntegrate app = new CallIntegrate();
app.enterEventDispatcher();
}
}
class AdressBookMenuItem extends ApplicationMenuItem {
Contact mContact;
public AdressBookMenuItem(int order) {
super(order);
}
public AdressBookMenuItem(Object context, int order) {
super(context, order);
}
public Object run(Object context) {
if (context instanceof Contact) {
mContact = (Contact) context;
if (0 < mContact.countValues(Contact.TEL)) {
String phone = mContact.getString(Contact.TEL, 0);
PhoneArguments args = new PhoneArguments(
PhoneArguments.ARG_CALL, phone);
Invoke.invokeApplication(Invoke.APP_TYPE_PHONE, args);
} else {
Dialog.alert("This contact has no phone number");
}
}
return null;
}
public Contact getContact() {
return mContact;
}
public String toString() {
return "Call via ABC";
}
}
class Scr extends MainScreen {
public Scr() {
super(DEFAULT_MENU|DEFAULT_CLOSE);
String label = "Now please go to blackberry adressbook, "
+ "select contact and open menu";
add(new LabelField(label));
AdressBookMenuItem menuItem = new AdressBookMenuItem(0);
ApplicationMenuItemRepository repository =
ApplicationMenuItemRepository.getInstance();
long id = ApplicationMenuItemRepository.MENUITEM_ADDRESSBOOK_LIST;
repository.addMenuItem(id, menuItem);
}
}
于 2009-09-21T11:05:26.127 に答える