3

Androidデバイスの通話アプリケーションを開きたいだけです。そのアプリケーションに電話番号を提供したくありません。開けたいだけ。
電話アプリケーションのパッケージ名を使用して開いています。以下のコードを使用して、そのパッケージ名から必要なアプリケーションを開くことができるためです。

Intent launchIntent = getPackageManager().getLaunchIntentForPackage("com.android.contacts"); startActivity(launchIntent);

上記のコードで電話連絡先のアプリケーションを開くことができません。何が問題になる可能性がありますか?

4

2 に答える 2

23

Intentsファイルを開くなどのアクションにアクセスするためのより一般的な方法を提供することを目的としています(ここではpwnは意図していません(くそ!))。やりたいことのパッケージを指定しなければならない場合、これは非常に制限されます。ただし、ここにあなたが求めているかもしれないインテントのいくつかがあります。

//For the contacts (picking one)
 Intent i = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
//For the contacts (viewing them) 
 Intent i = new Intent(Intent.ACTION_VIEW, ContactsContract.Contacts.CONTENT_URI);
//For the dial pad
 Intent i = new Intent(Intent.ACTION_DIAL, null);
//For viewing the call log
 Intent i = new Intent(Intent.ACTION_VIEW, CallLog.Calls.CONTENT_URI);

後で時間を節約するために、どこかにファイルを作成してくださいuseful intents。いつか感謝します。

もちろん、これらのインテントを開始するにはstartActivity(i);、最初のインテントを除くすべてのインテントに対して行います。これは、連絡先を元に戻したい場合や必要になる場合があるためですstartActivityForResult(i);が、それは別の話です。

于 2012-05-24T07:03:16.133 に答える
2

public static final String ACTION_DIAL

開始日:APIレベル1アクティビティアクション:データで指定された番号をダイヤルします。これは、ダイヤルされている番号を含むUIを示しており、ユーザーが明示的に通話を開始できるようになっています。入力:何もない場合、空のダイヤラが開始されます。

ソース:http ://developer.android.com/reference/android/content/Intent.html#ACTION_DIAL

http://developer.android.com/reference/android/content/Intent.html#ACTION_CALLもあなたが探しているものかもしれません。

アクティビティから電話を開始する場合は、アクティビティのコンテキストからhttp://developer.android.com/reference/android/content/Context.html#startActivity(android.content.Intent )を使用するだけです。

于 2012-05-24T07:10:33.963 に答える