我在这个问题上找到了几个答案,但它对我不起作用。如果您单击电子邮件或网站上的电话号码,则会出现默认拨号器弹出窗口以选择拨号器/ Skype等。
我正在尝试将我的应用程序放入该列表中 - 所以我不想处理实际的呼叫,而是打开活动并显示用户点击的号码。
我试过这个:
<receiver android:name=".MyOutgoingCallHandler">
<intent-filter>
<action android:name="android.intent.action.ACTION_DIAL" />
<action android:name="android.intent.action.NEW_OUTGOING_CALL" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
但它没有显示在列表中。我应该过滤什么意图?
答案 0 :(得分:0)
官方Android Developers blog已涵盖此流程。你可以在那里阅读所有相关信息。
您的意图过滤器看起来似乎有正确的操作,因此您可能没有请求正确的Android权限。
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
以下是Android开发者博客建议您声明广播接收器的方式。
<manifest>
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
<application>
...
<receiver android:name=MyOutgoingCallHandler">
<intent-filter>
<action android:name="android.intent.action.NEW_OUTGOING_CALL" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
...
</application>
</manifest>
答案 1 :(得分:0)
如果您要将Activity
添加到Activity
列表中,该列表将作为可能的电话拨号器显示给用户,您需要Activity
和{{{} 1}}定义必须在清单中包含此<activity>
:
intent-filter>
您所获得的是<activity ...>
<intent-filter>
<action android:name="android.intent.action.DIAL" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
,它将接收拨出电话BroadcastReceiver
。这有点不同。