android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=XXX:xxxxx }
报错原因分析
1、可能是你连接的设备没有电话应用(一般这种情况很少)
2、没有指定默认的VIEW
3、指定默认的activity中的data设置的scheme与intent.setData(Uri.parase(“你跳转使用的协议”)) 中的协议不对应
解决问题
1&2、指定默认的VIEW
在Manifest中选定一个activity(作为默认跳转的页面),在相应的intent-filter中添加如下代码即可:
<category android:name="android.intent.category.DEFAULT" />
3、在指定默认activity的代码中设置指定的数据协议部分与其他地方需要跳转的intent.setData() 中保持一致
如在某个activity.java 中代码如下
Intent intent = new Intent(Intent.ACTION_VIEW);
// intent.setData(Uri.parse("http://www.baidu.com"));
intent.setData(Uri.parse("tel:10086"));
startActivity(intent);
在manifest.xml中的代码如下:
<activity android:name=".ThirdActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="XXX" />
</intent-filter>
</activity>
在activity.java 中采用的数据协议是tel, 则manifest.xml 中对应 中的"XXX" 就应该保持一致才行。