启动第三方app(百度地图)No Activity found to handle Intent

在我的app中启动第三方的app,出现问题No Activity found to handleIntent。

我这里启动的是百度地图app,结果在执行startActivity(intent)的时候出现问题,代码如下:

//移动APP调起Android百度地图方式举例

intent = Intent.getIntent("intent://map/marker?" +
"location=" + endLat + "," + endLon +
"&title=" + "到达位置" +
"&content=" + endName +
"&src=com.test|App" +
"#Intent;scheme=bdapp;package=com.baidu.BaiduMap;end");
startActivity(intent);

出现这个问题:

06-13 12:37:55.51025143-25143/com.test E/AndroidRuntime: FATAL EXCEPTION: main

                                                                      Process: com.test  PID: 25143
                                                                      android.content.ActivityNotFoundException: No Activity found to handleIntent { act=android.intent.action.VIEW dat=bdapp://map/marker?location=67.9399074077,117.38033863063305&title=到达位置&content=石头店&src=com.test|App pkg=com.baidu.BaiduMap (has extras) }
                                                                          atandroid.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1801)
                                                                          atandroid.app.Instrumentation.execStartActivity(Instrumentation.java:1499)
                                                                          at android.app.Activity.startActivityForResult(Activity.java:3942)
                                                                          at android.app.Activity.startActivityForResult(Activity.java:3889)
                                                                          at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:748)
                                                                          at android.app.Activity.startActivity(Activity.java:4213)
                                                                          at android.app.Activity.startActivity(Activity.java:4181)
                                                                          atcom.test .chooseMapApp(MapActivity.java:875)
                                                                          atcom.test .onInfoWindowClick(MapActivity.java:747)                                                           
                                                                          at com.baidu.mapapi.map.b.a(Unknown Source)
                                                                          at com.baidu.platform.comapi.map.f.onSingleTapConfirmed(Unknown Source)
                                                                          at android.view.GestureDetector$GestureHandler.handleMessage(GestureDetector.java:280)
                                                                          at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                          at android.os.Looper.loop(Looper.java:145)
                                                                          at android.app.ActivityThread.main(ActivityThread.java:5981)
                                                                          at java.lang.reflect.Method.invoke(Native Method)
                                                                          at java.lang.reflect.Method.invoke(Method.java:372)
                                                                          atcom.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)

                                                                          at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)


原因:百度地图有为手机厂商特定的地图apk,其中的报名称可能不是com.baidu.BaiduMap,而是其他的名称,如在三星手机上的三星手机应用商店可以下载百度地图s-pen版就可以验证。


解决办法:启动的时候报名不要写死,从系统包中获取

String packageName  = ResolveInfo.activityInfo.packageName ;

//移动APP调起Android百度地图方式举例
intent=Intent.getIntent("intent://map/marker?"+
"location="+endLat+","+endLon+
"&title="+"到达位置"+
"&content="+endName+
"&src=com.test|App"+
"#Intent;scheme=bdapp;package="+
packageName+

";end");

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值