一。
调用PackageManager.queryIntentActivites方法可以查询系统是否注册了某个Activity Action,如果为返回任何结果,说明系统中没有安装包含指定的Activity Action的apk程序。
PackageManager packageManager = getPackageManager();
//指定要查找的Activity Action:com.android.phone.action.TOUCH_DIALER
Intent intent = new Intent("com.android.phone.action.TOUCH_DIALER");
//在系统中查询指定的Activity Action
List<ResolveInfo> resolveInfo = packageManager.queryIntentActivities(intent, PackageManager.GET_INTENT_FILTERS);
if(resolveInfo.size() == 0){
Log.d("Activity Action", "Activity Action 不存在");
}
二。
apk程序被发布到Android Market上时可以用程序直接调用内置在手机中的Android Market程序进行下载。
在Android系统中很多内置的应用会包含若干个Activity Action,因此,可以通过Activity Action直接调用其他应用程序中的窗口,访问Android Action就采用这个方法
让android merket 直接显示我们所期望的程序已提供用户下载可以通过应用程序名称或者ID进行查询
Uri uri = Uri.parse("market://search?q=应用程序名称");
Intent intent = new Intent("Intent.ACTION_VIEW",uri);
startActivity(intent);
根据应用程序的ID(也就是应用程序的Package name)
Uri uri = Uri.parse("market://details?id=mobile.android.library");
Intent intent = new Intent("Intent.ACTION_VIEW",uri);
startActivity(intent);
三。
安装apk程序的代码
Intent intent = new Intent(Intent.ACTION_VIEW);
String filePath = "/sdcard/FileExplorer.apk";
intent.setDateAndType(Uri.parse("file://"+filePath),"application/vnd.android.package-archive");
startActivity(intent);