2

ユーザーが通話を開始すると、Android は、通話に使用できるアプリ (Skype など) の選択を提案します。簡単な質問 - 私のアプリがそのリストにどのように表示され、どのように番号を取得できますか?どのユーザーがシステムダイヤラーに入れられましたか?

私は両方の回答で示唆されているすべての問題を解決しましたが、それでも、顧客が電話のダイヤルパッドでコールを押すと、次のように表示されます。

電話をかける: - スカイプ - 電話

リスト内に私のアプリはありません。

編集済み

そのコードの問題が解決され、私のアプリがリストに表示され、同様に開かれました:(間違っていた>シンボル)

  <activity
        android:name=".PhonePadActivity"
        android:label="@string/app_name"
        android:screenOrientation="portrait"
        android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />

            <action android:name="android.intent.action.CALL" />
            <data android:scheme="tel" />
            <category android:name="android.intent.category.DEFAULT" />
            <action android:name="android.intent.action.CALL_PRIVILEGED" />
       </intent-filter>


    </activity>

問題の 2 番目の部分 - ユーザーが標準のダイヤルパッドでダイヤルした電話番号を取得しますが、まだ解決されていません:

onCreated 内のそのコード:

Intent intent = getIntent();

String number = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);
Toast.makeText(this, "Call was made to-->>" + number, 5000).show();

null を返します。

第 2 版

前回、Google から CALL_PRIVILEGED を制限しているという通知を受け取りました (bcs は緊急通報をサポートしていません)。CALL_PRIVILEGED がなければ、私のアプリは再びリストに含まれません。そのことに対する新しい解決策を知っている人はいますか?私は現在、その問題に関してGoogleのサポートと話し合っています.今のところ、成功していない繰り返しがあります.

4

3 に答える 3

1

アクティビティを宣言して、アプリケーションを呼び出すためのオプション リストに追加します。

<activity android:name="Makecall" >
        <intent-filter> 

            <action android:name="android.intent.action.CALL" />
           <data android:scheme="tel" />
           <category android:name="android.intent.category.DEFAULT" />
           <action android:name="android.intent.action.CALL_PRIVILEGED" />

        </intent-filter>
    </activity>

および任意の番号に呼び出すには、次のように使用Intent.ACTION_DIALします。

Uri numberuri = Uri.parse("tel:"  + edit_text_number);
Intent intent_call = new Intent(Intent.ACTION_DIAL, numberuri);
startActivity(intent_call);
于 2012-12-29T13:45:26.650 に答える
0

行う必要があるのは、呼び出しを行うアクティビティにインテント フィルターを設定することです。これは AndroidManifest.xml ファイル内で行います。アクティビティ定義を変更して、このインテント フィルターを含めます。

<intent-filter>
    <action android:name="android.intent.action.CALL" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:scheme="tel" />
</intent-filter>

発信先の電話番号を取得するには、ブロードキャスト レシーバーで次のメソッドを使用します。

public void onReceive(Context context, Intent intent) 
    {
        String number = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);
        Toast.makeText(context, "Call was made to-->>" + number, 5000).show();

    }
于 2012-12-29T13:43:18.207 に答える