我希望我的应用程序通过“使用完整操作...”对话框注册电话呼叫处理程序。我发现如果我在清单中使用以下语法,它会起作用:
<activity android:name="my.class">
<intent-filter>
<action android:name="android.intent.action.CALL_PRIVILEGED" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="tel" />
</intent-filter>
</activity>
但是如果我将其注册为广播接收器,我的应用程序就不会显示在“使用...完成操作”对话框中。
<receiver android:name="my.class">
<intent-filter>
<action android:name="android.intent.action.CALL_PRIVILEGED" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="tel" />
</intent-filter>
</receiver>
除了Intent与过滤器匹配后要调用的类的类型之外,两者之间有什么区别?
答案 0 :(得分:6)
差异很明显:第一个会尝试启动Activity
,而第二个会执行BroadcastReceiver
。使用什么取决于你想要达到的目标;如果您想捕获某些事件但不想向用户显示任何内容,请使用BroadcastReceiver
。