-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 回答