应该使用什么样的过滤器,以便在拨打电话时我的应用程序显示在活动选择器中:如显示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不会出现在活动选择器中。
答案 0 :(得分:2)
声明您的Activity
将其添加到选项列表中以便调用应用程序
<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);
答案 1 :(得分:1)
令人惊讶的是,我发现我需要在我的清单中添加动作VIEW,以便我的拨号器显示在App Chooser中。还在寻找解释。
所以这是有效的:
<!-- 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>
当我添加到intent-filter
时<!-- language: lang-XML -->
<data android:mimeType="text/plain"/>
我的拨号器不出现在App Chooser
中答案 2 :(得分:0)
您需要注册广播接收器的主要活动。
请勿使用拦截CALL_PRIVILEGED Intent调用的活动。这样做会干扰EMS呼叫。你的例子就在正确的轨道上。