呼叫Android系統“應用程式資訊(Application Info)”介面
呼叫Android系統“應用程式資訊(Application Info)”介面
ZhengZhiren
http://blog.csdn.net/ZhengZhiRen/archive/2011/01/23/6159750.aspx
“Android系統設定->應用程式->管理應用程式”列表下,列出了系統已安裝的應用程式。選擇其中一個程式,則進入“應用程式資訊(Application Info)”介面。這個介面顯示了程式名稱、版本、儲存、許可權等資訊,並有解除安裝、停止、清除快取等按鈕,可謂功能不少。如果在編寫相關程式時(比如工作管理員)可以呼叫這個皮膚,自然提供了很大的方便。那麼如何實現呢?
在最新的Android SDK 2.3(API Level 9)中,提供了這樣的介面。在文件路徑
docs/reference/android/provider/Settings.html#ACTION_APPLICATION_DETAILS_SETTINGS
下,有這樣的描述:
public static final String ACTION_APPLICATION_DETAILS_SETTINGS Since: API Level 9
Activity Action: Show screen of details about a particular application.
In some cases, a matching Activity may not exist, so ensure you safeguard against this.
Input: The Intent's data URI specifies the application package name to be shown, with the "package" scheme. That is "package:com.my.app".
Output: Nothing.
Constant Value: "android.settings.APPLICATION_DETAILS_SETTINGS"
就是說,我們只要以android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS作為Action;“package:應用程式的包名”作為URI,就可以用startActivity啟動應用程式資訊介面了。程式碼如下:
Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
Uri uri = Uri.fromParts(SCHEME, packageName, null);
intent.setData(uri);
startActivity(intent);
// utility method used to start sub activity
private void startApplicationDetailsActivity() {
// Create intent to start new activity
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setClass(this, InstalledAppDetails.class);
intent.putExtra(APP_PKG_NAME, mCurrentPkgName);
// start new activity to display extended information
startActivityForResult(intent, INSTALLED_APP_DETAILS);
}
Intent i = new Intent(Intent.ACTION_VIEW);
i.setClassName("com.android.settings","com.android.settings.InstalledAppDetails");
i.putExtra("com.android.settings.ApplicationPkgName", packageName);
startActivity(i);
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);
}
相關文章
- android 呼叫系統介面Android
- API(Application Programming Interface,應用程式程式設計介面)APIAPP程式設計
- Android應用開發-學生資訊管理系統Android
- 【Abyss】Android 平臺應用級系統呼叫攔截框架Android框架
- 採用DDD開發資訊釋出系統(二) Info實體類
- 資訊系統的輔助應用系統
- WebApi介面 - 如何在應用中呼叫webapi介面WebAPI
- 【dbms包】DBMS_APPLICATION_INFOAPP
- 使用DBMS_APPLICATION_INFO.SET_CLIENT_INFO來定位當前session所在的程式模組APPclientSession
- 應用SWIG 封裝C++ 介面提供Java 程式呼叫封裝C++Java
- 資訊系統應用管理隨想
- 開發Android系統應用Android
- 資訊圖:Android系統惡意應用一年增長580%Android
- 資訊系統應用的配套制度建設 三大資訊系統
- C/C++ 運用VMI介面查詢系統資訊C++
- DBMS_APPLICATION_INFO包的使用APP
- C程式函式呼叫&系統呼叫C程式函式
- 智慧資訊化系統建設落地應用
- 資訊系統應用實施斷想
- Android呼叫系統相機,相容7.0系統Android
- android重新啟動應用程式和重新啟動系統 .Android
- Dubbo 泛化呼叫在vivo統一配置系統的應用
- 教你實現快應用storage介面同步呼叫
- Laravel 原始碼筆記 應用程式 ApplicationLaravel原始碼筆記APP
- 應用程式退休(Application Retirement)解決方案APPREM
- 資訊化時代大資料系統整合應用大資料
- 資訊系統應用發展三階段
- javascript如何呼叫本地應用程式JavaScript
- windows10系統下執行Android應用程式的方法WindowsAndroid
- android應用實現重啟系統Android
- 尼爾森:Android系統應用排行Android
- Android系統資訊獲取Android
- 開發整合Microsoft Visual Basic for Application的應用系統(一) (轉)ROSAPP
- Android獲取應用基本資訊Android
- 用Promise實現小程式介面鏈式呼叫Promise
- 短視訊程式開發,Android:呼叫系統拍照和相簿Android
- Android 應用啟動那些事兒,Application? Context?AndroidAPPContext
- 業務督辦資訊系統統一提醒介面系統