我正在尝试在我的应用中处理来电。我希望它能够在拨打电话(而非拨号)时启动活动。然而,当我按下“人物”活动中的“呼叫”或电话号码按钮时,我的应用程序永远不会被建议,即使我清除所有类似应用程序的默认设置或取消它们。 代码:
<!-- ... -->
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
<!-- ... -->
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.contact.MainActivity"
android:label="@string/app_name" >
<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.CALL" />
<action android:name="android.intent.action.CALL_BUTTON" />
<action android:name="android.intent.action.CALL_PRIVILEGED" />
<action android:name="android.intent.action.DIAL" />
</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>
</activity>
</application>
<!-- ... -->
我想我想抓住与呼叫或至少拨打相关的所有可能的意图? 那有什么不对?
更新:录制手机(例如在电子邮件应用中)可以使用,但我仍然无法处理来自“人物”的电话。
答案 0 :(得分:0)
你试过吗?
<activity
android:name="com.test.Call"
android:label="@string/makeCall" >
<intent-filter>
<action android:name="android.intent.action.CALL" />
<category android:name="android.intent.category.DEFAULT" />
<action android:name="android.intent.action.CALL_PRIVILEGED" />
<data android:scheme="tel" />
</intent-filter>
</activity>
答案 1 :(得分:0)
它总是取决于调用应用程序正在执行哪个Intent。例如,当用户点击SMS应用程序中的电话号码时,我想执行我的Intent。看看LogCat显示SMS应用程序执行以下意图:
11-24 13:16:57.453:I / ActivityManager(390):START u0 {act = android.intent.action.VIEW dat = tel:xxxxxxxxxxxxx cmp = android / com.android.internal.app.ResolverActivity(来自pid 2493
的额外内容}
因此,通过添加以下intent过滤器,它适用于我的SMS应用程序:
<intent-filter>
<category android:name="android.intent.category.DEFAULT" />
<action android:name="android.intent.action.VIEW"/>
<data android:scheme="tel" />
</intent-filter>
我的建议是简单地使用LogCat来找出“人物”活动所期望的意图。