android跳轉到設置中的App Info界面

private static final String SCHEME = "package";

/**

* 調用系統InstalledAppDetails界面所需的Extra名稱(用於Android 2.1及之前版本)

*/

private static final String APP_PKG_NAME_21 = "com.android.settings.ApplicationPkgName";

/**

* 調用系統InstalledAppDetails界面所需的Extra名稱(用於Android 2.2)

*/

private static final String APP_PKG_NAME_22 = "pkg";

/**

* InstalledAppDetails所在包名

*/

private static final String APP_DETAILS_PACKAGE_NAME = "com.android.settings";

/**

* InstalledAppDetails類名

*/

private static final String APP_DETAILS_CLASS_NAME = "com.android.settings.InstalledAppDetails";

/**

* 調用系統InstalledAppDetails界面顯示已安裝應用程序的詳細信息。 對於Android 2.3(Api Level

* 9)以上,使用SDK提供的接口; 2.3以下,使用非公開的接口(查看InstalledAppDetails源碼)。

*

* @param context

*

* @param packageName

* 應用程序的包名

*/

public static void showInstalledAppDetails(Context context, String packageName) {

Intent intent = new Intent();

final int apiLevel = Build.VERSION.SDK_INT;

if (apiLevel >= 9) { // 2.3(ApiLevel 9)以上,使用SDK提供的接口

intent.setAction(Settings.ACTION_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不同。

final String 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);

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章