android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.

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" 就应该保持一致才行。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值