无活动处理意向与action.DIAL(No Activity found to handle In

2019-09-01 04:45发布

我似乎缺乏关于处理这种意图的知识,但不可能发现了一会回答。

我有一个片段的活动。 片段执行调用接触的目的,这样的代码:

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> 

输出是No Activity found to handle Intent和应用程序崩溃。

这是明显的实现,持有片段的活动:

<activity android:name="activities.ContactActivity">            
    <intent-filter>
        <action android:name="android.intent.action.DIAL" />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</activity>

我究竟做错了什么? 我需要在清单中声明为一些特殊的活动吗?

Answer 1:

你并不需要声明拨打清单的意图过滤器,并不需要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;
}


Answer 2:

Intent.ACTION_VIEW摸索出适合我更好,因为在平板电脑上没有拨号程序,它会自动切换到“添加到联系人”。



文章来源: No Activity found to handle Intent with action.DIAL