1

应该使用什么意图过滤器,以便每当拨打电话时我的应用程序都会显示在活动选择器中:例如显示 Viber 和 Skype。

我正在使用这个过滤器:

   <receiver android:name="OutgoingCallReceiver" >
        <intent-filter>
            <action android:name="android.intent.action.ACTION_NEW_OUTGOING_CALL" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </receiver>

经许可:

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

myApp 仍然没有出现在活动选择器中。

4

3 回答 3

2

声明您的Activityas 以将其添加到调用应用程序的选项列表中

<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);
于 2013-07-08T10:30:08.370 回答
1

令人惊讶的是,我发现我需要将操作 VIEW 添加到我的清单中,以便我的拨号器出现在应用选择器中。仍在寻找对此的解释。
所以这是有效的:

<!-- language: lang-XML -->   
<intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <action android:name="android.intent.action.DIAL"/>
    <action android:name="android.intent.action.CALL"/>
    <data android:scheme="tel"/>
    <category android:name="android.intent.category.DEFAULT"/>
</intent-filter>

当我添加到意图过滤器时

<!-- language: lang-XML --> 
<data android:mimeType="text/plain"/>

我的拨号器没有出现在应用选择器中

于 2016-12-24T11:15:31.747 回答
0

您需要一个主要活动来注册广播接收器。

不要使用拦截 CALL_PRIVILEGED Intent 调用的活动。这样做会干扰 EMS 呼叫。你的例子是正确的。

于 2014-09-26T13:54:46.860 回答