kin*_*ton 3 android phone-call android-intent
我找不到以下文档:
android.intent.action.CALL_PRIVILEGED
Run Code Online (Sandbox Code Playgroud)
我看到它在csipsimple中用于处理调用.
我想更好地了解如何使用它.例如:android.intent.action.CALL_PRIVILEGED和之间的关系是
android.intent.action.NEW_OUTGOING_CALL什么?
我补充说:
<intent-filter>
<action android:name="android.intent.action.CALL_PRIVILEGED" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="tel" />
</intent-filter>
Run Code Online (Sandbox Code Playgroud)
在我的项目的AndroidManifest中.当从本机拨号程序启动调用时,我的活动被调用,但如果在onResume中我执行getIntent().getAction(),则结果为null
编辑
我让它处理onNewIntent以及onCreate.onResume接收一个没有动作的意图(我猜想默认的onNewIntent处理程序发送).
问题是要检查操作是否为CALL_PRIVILEGED,我必须对字符串"android.intent.action.CALL_PRIVILEGED"进行硬编码,因为操作CALL_PRIVILEGED是隐藏的.
我试图仅为ACTION_CALL注册活动,但它不起作用
Nik*_*huk 11
意图与行动android.intent.action.CALL_PRIVILEGED当您使用以下方式从电话簿拨打电话叫:电话书本- >非接触>龙点击PHONENUMBER - >选择让从下拉菜单中调用.以下代码应放在Manifest中:
<activity>
<intent-filter>
<action android:name="android.intent.action.CALL_PRIVILEGED" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)
对HTC来说有些变化:
<activity>
<intent-filter>
<action android:name="android.intent.action.CALL_PRIVILEGED" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="vnd.android.cursor.item/phone" />
<data android:mimeType="vnd.android.cursor.item/phone_v2" />
<data android:mimeType="vnd.android.cursor.item/person" />
</intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)
当此代码添加到Manifest并且您尝试按上述方式进行调用时,您可以获取Application Chooser并以此方式拦截该调用并继续通过所选应用程序进行调用.
至于它在BroadcastReceivers中使用的android.intent.action.NEW_OUTGOING_CALL,当你想得到关于拨出电话的通知时.例如,如果你想要,你应该将以下鳕鱼放到Manifest:
<receiver android:name=".CallReceiver">
<intent-filter>
<action android:name="android.intent.action.NEW_OUTGOING_CALL" />
</intent-filter>
</receiver>
Run Code Online (Sandbox Code Playgroud)
并创建:
public class CallReceiver extends BroadcastReceiver{
private static final String TAG = "Call_Receiver";
@Override
public void onReceive(Context context, Intent intent) {
Bundle bundle = intent.getExtras();
//Notification there
....
}
}
Run Code Online (Sandbox Code Playgroud)
使用此功能,您可以在拨打电话时始终收到通知.
这些项目之间的主要区别是,第一次拦截意图,第二项只能得到某些事情发生的结果.
| 归档时间: |
|
| 查看次数: |
19512 次 |
| 最近记录: |