Android检查手机上是否安装了第三方软件的方法------本文以百度地图为例
16lz
2022-07-30
转于:http://blog.csdn.net/ljb_blog/article/details/11047655
---------------------------------------------------------------------------------------
- packagecom.example.myapi.thirdbaidumap;
- importjava.net.URISyntaxException;
- importjava.util.ArrayList;
- importjava.util.List;
- importandroid.app.Activity;
- importandroid.content.Context;
- importandroid.content.Intent;
- importandroid.content.pm.PackageInfo;
- importandroid.content.pm.PackageManager;
- importandroid.net.Uri;
- importandroid.os.Bundle;
- importandroid.util.Log;
- importandroid.view.View;
- importandroid.view.View.OnClickListener;
- importandroid.widget.Button;
- importcom.example.myapi.R;
- /**
- *测试程序跳转到第三方地图,并将数据传递过去。
- *@authortony
- *
- */
- publicclassThirdBaiduMapTestActivityextendsActivityimplementsOnClickListener{
- privateButtonbtn_test;
- @Override
- protectedvoidonCreate(BundlesavedInstanceState){
- super.onCreate(savedInstanceState);
- setContentView(R.layout.thirdbaidumaptest);
- btn_test=(Button)findViewById(R.id.baidu_btn_test);
- btn_test.setOnClickListener(this);
- }
- @Override
- publicvoidonClick(Viewv){
- switch(v.getId()){
- caseR.id.baidu_btn_test:
- //如果已安装,
- if(isAvilible(this,"com.baidu.BaiduMap")){//传入指定应用包名
- Intentintent=null;
- 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");
- intent=Intent.getIntent("intent://map/direction?"+
- "origin=大柏树&"+
- "destination=江湾镇"+
- "&mode=driving&"+
- "region=上海市"+
- "&src=yourCompanyName|yourAppName#Intent;scheme=bdapp;package=com.baidu.BaiduMap;end");
- startActivity(intent);//启动调用
- }catch(URISyntaxExceptione){
- Log.e("intent",e.getMessage());
- }
- }else{//未安装
- //market为路径,id为包名
- //显示手机上所有的market商店
- Uriuri=Uri.parse("market://details?id=com.baidu.BaiduMap");
- Intentintent=newIntent(Intent.ACTION_VIEW,uri);
- startActivity(intent);
- }
- break;
- }
- }
- /**
- *检查手机上是否安装了指定的软件
- *@paramcontext
- *@parampackageName:应用包名
- *@return
- */
- privatebooleanisAvilible(Contextcontext,StringpackageName){
- //获取packagemanager
- finalPackageManagerpackageManager=context.getPackageManager();
- //获取所有已安装程序的包信息
- List<PackageInfo>packageInfos=packageManager.getInstalledPackages(0);
- //用于存储所有已安装程序的包名
- List<String>packageNames=newArrayList<String>();
- //从pinfo中将包名字逐一取出,压入pNamelist中
- if(packageInfos!=null){
- for(inti=0;i<packageInfos.size();i++){
- StringpackName=packageInfos.get(i).packageName;
- packageNames.add(packName);
- }
- }
- //判断packageNames中是否有目标程序的包名,有TRUE,没有FALSE
- returnpackageNames.contains(packageName);
- }
- }
更多相关文章
- Pycharm安装PyQt5的详细教程
- 【阿里云镜像】切换阿里巴巴开源镜像站镜像——Debian镜像
- Android屏幕分辨率正确获取及PX,DPI,DP,SP等的对应关系
- Android(安卓)环境搭建
- android 获取唯一标识
- android拍照与读取相册
- Android(安卓)热点开关状态的判断和获取热点ssid
- Android软键盘适配问题
- 第一章 andriod studio 安装与环境搭建