android用Intent隐式意图调起(百度,谷歌,高德地图)
2017-05-03 15:37
465 查看
1.权限
2.布局中
3.activity类中
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/><uses-permission android:name="android.permission.INTERNET"/><uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" /><uses-permission android:name="android.permission.WAKE_LOCK"/><uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><uses-permission android:name="android.permission.GET_TASKS" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/><uses-permission android:name="android.permission.WRITE_SETTINGS" />
2.布局中
<Button android:id="@+id/button_gao" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="调起高德地图" /> <Button android:id="@+id/button_bai" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="调起百度地图" /> <Button android:id="@+id/button_gu" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="调起谷歌地图" />
3.activity类中
public class MainActivity extends AppCompatActivity implements View.OnClickListener { private Intent intent; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); } private void initView() { Button button_bai = (Button) findViewById(R.id.button_bai); Button button_gao = (Button) findViewById(R.id.button_gao); Button button_gu = (Button) findViewById(R.id.button_gu); button_bai.setOnClickListener(this); button_gao.setOnClickListener(this); button_gu.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()){ case R.id.button_bai: if(isAvilible(MainActivity.this,"com.baidu.BaiduMap")){//传入指定应用包名 try { // intent = Intent.getIntent("intent://map/direction?origin=latlng:34.264642646862,108.95108518068|name:我家&destination=大雁塔&mode=driving®ion=西安&src=yourCompanyName|yourAppName#Intent;scheme=bdapp;package=com.baidu.BaiduMap;end"); //"origin=latlng:"+"34.264642646862,108.95108518068&" + //起点 此处不传值默认选择当前位置 //终点 //导航路线方式 // intent = Intent.getIntent("intent://map/direction?" + //"origin=latlng:"+"34.264642646862,108.95108518068&" + //起点 此处不传值默认选择当前位置 "destination=latlng:"+34.264642646862+","+108.95108518068+"|name:我的目的地"+ //终点 "&mode=driving&" + //导航路线方式 "region=北京" + // "&src=慧医#Intent;scheme=bdapp;package=com.baidu.BaiduMap;end"); startActivity(intent); //启动调用 } catch (URISyntaxException e) { Log.e("intent", e.getMessage()); } }else{//未安装 //market为路径,id为包名 //显示手机上所有的market商店 Toast.makeText(MainActivity.this, "您尚未安装百度地图", Toast.LENGTH_LONG).show(); Uri uri = Uri.parse("market://details?id=com.baidu.BaiduMap"); intent = new Intent(Intent.ACTION_VIEW, uri); startActivity(intent); } break; case R.id.button_gao: if (isAvilible(MainActivity.this, "com.autonavi.minimap")) { try{ intent = Intent.getIntent("androidamap://navi?sourceApplication=慧医&poiname=我的目的地&lat="+34.264642646862+"&lon="+108.95108518068+"&dev=0"); startActivity(intent); } catch (URISyntaxException e) {e.printStackTrace(); } }else{ Toast.makeText(MainActivity.this, "您尚未安装高德地图", Toast.LENGTH_LONG).show(); Uri uri = Uri.parse("market://details?id=com.autonavi.minimap"); intent = new Intent(Intent.ACTION_VIEW, uri); startActivity(intent); } break; case R.id.button_gu: if (isAvilible(MainActivity.this,"com.google.android.apps.maps")) { Uri gmmIntentUri = Uri.parse("google.navigation:q="+34.264642646862+","+108.95108518068 +", + Sydney +Australia"); Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri); mapIntent.setPackage("com.google.android.apps.maps"); startActivity(mapIntent); }else { Toast.makeText(MainActivity.this, "您尚未安装谷歌地图", Toast.LENGTH_LONG).show(); Uri uri = Uri.parse("market://details?id=com.google.android.apps.maps"); intent = new Intent(Intent.ACTION_VIEW, uri); startActivity(intent); } break; } } /* * 检查手机上是否安装了指定的软件 * @param context * @param packageName:应用包名 * @return */ public static boolean isAvilible(Context context, String packageName){ //获取packagemanager final PackageManager packageManager = context.getPackageManager(); //获取所有已安装程序的包信息 List<PackageInfo> packageInfos = packageManager.getInstalledPackages(0); //用于存储所有已安装程序的包名 List<String> packageNames = new ArrayList<String>(); //从pinfo中将包名字逐一取出,压入pName list中 if(packageInfos != null){ for(int i = 0; i < packageInfos.size(); i++){ String packName = packageInfos.get(i).packageName; packageNames.add(packName); } } //判断packageNames中是否有目标程序的包名,有TRUE,没有FALSE return packageNames.contains(packageName); } }
相关文章推荐
- Android中隐式意图(Intent)用法
- Android学习记录(7)—Intent中显示意图和隐式意图的用法
- Android学习记录--Intent中显示意图和隐式意图的用法
- 关于Android intent的知识 隐式意图和显示意图
- Android之隐式意图(Intent)如何查找匹配的组件
- android intent 隐式意图和显示意图(activity跳转)
- Android实例demo19之Intent显式意图隐式意图、隐式意图打开多个网页
- Android开发:显式/隐式Intent意图跳转Activity总结
- android intent隐式意图注意问题
- 【转】Android深入探究笔记之三 -- Intent (隐式意图和显示意图)
- android学习之Intent隐式意图
- Android Intent学习之 隐式意图& 显示意图& intent 跳转问题
- Android深入探究笔记之三 -- Intent (隐式意图和显示意图)
- Android Intent中显示意图与隐式意图的基本用法
- Android中隐式意图(Intent)用法
- Android学习记录(7)—Intent中显示意图和隐式意图的用法
- android intent 隐式意图和显示意图(activity跳转)
- Android隐式意图Intent
- Android学习之Intent中显示意图和隐式意图的用法实例分析
- 关于Android intent的知识 隐式意图和显示意图