-1

押されたときにインテントでstartActivityメソッドを使用するボタンを持つアプリケーションがあります。ACTION_CALL

これはその呼び出し方です:

public void call(String number)
{
    Intent myIntent = new Intent(Intent.ACTION_CALL);
    myIntent.setData(Uri.parse("tel:" + number);
    startActivity(myIntent);
}

許可を得てダイヤラーアプリを作成しました:

<uses-permission android:name="android.permission.CALL_PHONE" />

そして、私のマニフェストは次のようになります。

 <intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
 <intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <action android:name="android.intent.action.DIAL" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <data android:scheme="tel" />
</intent-filter>
<intent-filter>
    <action android:name="android.intent.action.CALL_BUTTON" />
    <category android:name="android.intent.category.DEFAULT" />
</intent-filter>

私が見た他のすべての質問は、この正確な宣言をマニフェストで行うことを示唆しています。

確認したところ、電話に付属の Google ダイヤラー アプリにはデフォルト設定がありません。

では、その意図をキャッチするダイヤラとしてアプリケーションを選択するオプションを含むポップアップ ダイアログが表示されないのはなぜでしょうか?

4

1 に答える 1

1

私はついにそれを機能させました。一連のインテント フィルターを追加すると、機能し始めました。

<intent-filter>
            <action android:name="android.intent.action.NEW_OUTGOING_CALL" />

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

        </intent-filter>

        <intent-filter android:priority="100" >

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

        </intent-filter>

        <intent-filter>

            <action android:name="android.intent.action.CALL_BUTTON" />
            <category android:name="android.intent.category.DEFAULT" />

        </intent-filter>

        <intent-filter>

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

        </intent-filter>

        <intent-filter>

            <action android:name="android.intent.action.VIEW" />
            <action android:name="android.intent.action.DIAL" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:scheme="tel" />

        </intent-filter>

最初の人は魔法をやったと思います。

于 2016-06-08T08:02:39.257 に答える