我似乎缺乏处理这种意图的知识,但是无法找到答案一段时间.
我有一个片段的活动.片段执行此代码,目的是呼叫联系人:
private void onCall() { Intent intent = new Intent(Intent.ACTION_DIAL,Uri.parse(contact.getBusinessPhone())); startActivity(intent); }
还包括许可
<uses-permission android:name="android.permission.CALL_PHONE"></uses-permission>
输出是没有活动找到处理意图和应用程序崩溃.
这里是显示实现的片段的活动:
<activity android:name="activities.ContactActivity"> <intent-filter> <action android:name="android.intent.action.DIAL" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity>
我究竟做错了什么?我需要在清单中声明的一些特殊活动吗?
解决方法
您不需要在清单中声明拨号意图过滤器,并且不需要ACTION_DIAL的任何权限.寻找我的实现
private void startDialActivity(String phone){ Intent intent = new Intent(Intent.ACTION_DIAL); intent.setData(Uri.parse("tel:"+phone)); startActivity(intent); }
也很好检查是电话支持的设备
private boolean isTelephonyEnabled(){ TelephonyManager telephonyManager = (TelephonyManager)getSystemService(TELEPHONY_SERVICE); return telephonyManager != null && telephonyManager.getSimState()==TelephonyManager.SIM_STATE_READY; }