【华育国际Android知识库】Andr

【华育国际Android知识库】Andr

有时候一个应用需要启动另外一个应用来完成操作,比如在某些应用中打开闹钟,相机,日历等等。

启动或安装相应的应用的方法:

Step1:判断是否安装目标应用。只要知道目标应用的安装包名就可以通过判断"/data/data/packagename"是否存在来实现。

/***判断是否安装目标应用*

parampackageName目标应用安装后的包名*

return是否已安装目标应用*

authorzuolongsnail*/privatebooleanisInstallByread(StringpackageName){returnnewFile("/data/data/"+packageName).exists();}

Step2:目标应用已安装则启动,否则先安装。

/***先判断是否安装,已安装则启动目标应用程序,否则先安装*

parampackageName目标应用安装后的包名*

paramappPath目标应用apk安装文件所在的路径*

authorzuolongsnail*/privatevoidlaunchApp(StringpackageName,StringappPath){//启动目标应用if(isInstallByread(packageName)){//获取目标应用安装包的IntentIntentintent=getPackageManager().getLaunchIntentForPackage(packageName);startActivity(intent);}//安装目标应用else{Intentintent=newIntent();//设置目标应用安装包路径intent.setDataAndType(Uri.fromFile(newFile(appPath)),"application/vnd.android.package-archive");startActivity(intent);}}

判断应用是否安装或者是否为最新版本

在我们安装应用的时候有时需要检查应用是否安装,未安装则安装,旧版本则覆盖安装。

/**判断是否安装或覆盖安装的类型*/privatestaticfinalintNOTINSTALL=0;//未安装privatestaticfinalintINSTALLED=1;//已安装且为新版本privatestaticfinalintOLDVERSION=2;//已安装但为旧版本/***判断应用是否安装或者是否为最新版本*

parampackageName目标应用安装后的包名*

paramversionCode指定的应用版本号*

return安装的类型*

authorzuolongsnail*/privateintisInstallByread(StringpackageName,intversionCode){//判断是否安装if(newFile("/data/data/"+packageName).exists()){//获取系统中安装的所有应用包名集合ListPackageInfopackages=getPackageManager().getInstalledPackages(0);for(inti=0;ipackages.size();i++){PackageInfopackageInfo=packages.get(i);//找出指定的应用if(packageName.equals(packageInfo.packageName)){if(packageInfo.versionCode=versionCode){returnINSTALLED;}else{returnOLDVERSION;}}}}returnNOTINSTALL;}

上面程序中的versionCode是在Manifest.xml文件中的Manifest标签中配置的,表示应用的版本号。









































白癜风医院
白癜风怎么治疗



转载请注明:http://www.gslnbdf.com/azrj/1030.html