
public class CallinitiatingActivity extends Activity { @OverrIDe protected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:" + number)); intent.putExtra("com.demoapp.CUSTOM_CALL",true); startActivity(intent); }} 我还注册了broadcastReceiver,它监听传出呼叫:
<receiver androID:name=".OutgoingCallListener" androID:exported="true" > <intent-filter androID:priority="0" > <action androID:name="androID.intent.action.NEW_OUTGOING_CALL" /> <category androID:name="androID.intent.category.DEFAulT" /> </intent-filter></receiver>
基本上我期待onReceive看到我的额外,但不知何故它没有通过:
public class OutgoingCallListener extends broadcastReceiver { @OverrIDe public voID onReceive(Context context,Intent intent) { Bundle extras = intent.getExtras(); for (String key : extras.keySet()) { Log.i(Constant.LOG_TAG,key + ": " + extras.get(key)); } }} 输出:
androID.phone.extra.ALREADY_CALLED:falseandroID.intent.extra.PHONE_NUMBER:+370652xxxxxcom.htc.calendar.event_uri:nullandroID.phone.extra.ORIGINAL_URI:tel:+370652xxxxx解决方法 您的自定义额外信息存在于您用于启动“呼叫”活动的意图中.但它不会被复制到作为实际调用机制的一部分进行广播的NEW_OUTGOING_CALL Intent中.这两个 *** 作是不同的,只是间接相互关联.只有AndroID系统本身才能广播NEW_OUTGOING_CALL意图.
您无法为此Intent添加自己的额外内容.你需要想出另一种方法去做你想要完成的任何事情.
总结以上是内存溢出为你收集整理的android – 启动ACTION_CALL时如何将Extra传递给BroadcastReceiver全部内容,希望文章能够帮你解决android – 启动ACTION_CALL时如何将Extra传递给BroadcastReceiver所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)