調用Android系統「應用程序信息(Application Info)」界面

privatestaticfinalString SCHEME ="package";
/**
* 調用系統InstalledAppDetails界面所需的Extra名稱(用於Android 2.1及以前版本)
*/
privatestaticfinalString APP_PKG_NAME_21 ="com.android.settings.ApplicationPkgName";
/**
* 調用系統InstalledAppDetails界面所需的Extra名稱(用於Android 2.2)
*/
privatestaticfinalString APP_PKG_NAME_22 ="pkg";
/**
* InstalledAppDetails所在包名
*/
privatestaticfinalString APP_DETAILS_PACKAGE_NAME ="com.android.settings";
/**
* InstalledAppDetails類名
*/
privatestaticfinalString APP_DETAILS_CLASS_NAME ="com.android.settings.InstalledAppDetails";
/**
* 調用系統InstalledAppDetails界面顯示已安裝應用程序的詳細信息。 對於Android 2.3(Api Level
* 9)以上,使用SDK提供的接口; 2.3如下,使用非公開的接口(查看InstalledAppDetails源碼)。
*
* @param context
*
* @param packageName
*            應用程序的包名
*/
publicstaticvoidshowInstalledAppDetails(Context context, String packageName) {
Intent intent =newIntent();
finalintapiLevel = Build.VERSION.SDK_INT;
if(apiLevel >=9) {// 2.3(ApiLevel 9)以上,使用SDK提供的接口
intent.setAction("android.settings.APPLICATION_DETAILS_SETTINGS");
Uri uri = Uri.fromParts(SCHEME, packageName,null);
intent.setData(uri);
}else{// 2.3如下,使用非公開的接口(查看InstalledAppDetails源碼)
// 2.2和2.1中,InstalledAppDetails使用的APP_PKG_NAME不一樣。
finalString appPkgName = (apiLevel ==8? APP_PKG_NAME_22 : APP_PKG_NAME_21);
intent.setAction(Intent.ACTION_VIEW);
intent.setClassName(APP_DETAILS_PACKAGE_NAME,
APP_DETAILS_CLASS_NAME);
intent.putExtra(appPkgName, packageName);
}
context.startActivity(intent);
}
相關文章
相關標籤/搜索