【Android源码 栏目提醒】:本文主要为网学会员提供“调用Android系统 应用程序信息 Applica - 互联网”,希望对需要调用Android系统 应用程序信息 Applica - 互联网网友有所帮助,学习一下!
调用
Android系统 应用程序信息 Applica 调用
Android系统应用程序信息Application Info界面收藏 调用
Android系统应用程序信息Application Info界面
Android系统设置-应用程序-管理应用程序列表下列出了系统已安装的应用程序。
选择其中一个程序则进入应用程序信息Application Info界面。
这个界面显示了程序名称、版本、存储、权限等信息并有卸载、停止、清除缓存等按钮可谓功能不少。
如果在编写相关程序时比如任务管理器可以调用这个面板自然提供了很大的方便。
那么如何实现呢 在最新的
Android SDK 2.3API Level 9中提供了这样的接口。
在文档路径 docs/reference/
android/provider/Settings.htmlACTION_APPLICATION_DETAILS_SETTINGS 下有这样的描述 public static final String ACTION_APPLICATION_DETAILS_SETTINGS SinceAPI Level 9 Activity ActionShow screen of details about aparticular application. In some casesa matching Activity may not existso ensure you safeguard against this. InputThe Intents data URI specifies the application package name to be shownwith thepackagescheme.That ispackagecom.my.app. OutputNothing. Constant Valueandroid.settings.APPLICATION_DETAILS_SETTINGS 就是说我们只要以
android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS作为Actionpackage应用程序的包名作为URI就可以用startActivity启动应用程序信息界面了。
代码如下 view plaincopy to clipboardprintIntent intentnew IntentSettings.ACTION_APPLICATION_DETAILS_SETTINGSUri uriUri.fromPartsSCHEMEpackageNamenullintent.setDatauristartActivityintent但是在
Android 2.3之前的版本并没有公开相关的接口。
通过查看系统设置platform/packages/apps/Settings.git程序的
源码可以发现应用程序信息界面为InstalledAppDetails。
在这里2.1还有这里2.2我们可以分别看到
Android2.1和
Android2.2的应用管理程序ManageApplications.java是如何启动InstalledAppDetails的。
view plaincopy to clipboardprint//utility method used to start sub activityprivatevoid startApplicationDetailsActivity//Create intent to start new activity Intent intentnew IntentIntent.ACTION_VIEWintent.setClassthisInstalledAppDetails.classintent.putExtraAPP_PKG_NAMEmCurrentPkgName//start new activity to display extended information startActivityForResultintentINSTALLED_APP_DETAILS但是常量APP_PKG_NAME的定义并不相同。
2.2中定义为pkg2.1中定义为com.
android.settings.ApplicationPkgName那么对于2.1及以下版本我们可以这样调用InstalledAppDetailsview plaincopy to clipboardprintIntent inew IntentIntent.ACTION_VIEWi.setClassNamecom.
android.settingscom.
android.settings.InstalledAppDetailsi.putExtracom.
android.settings.ApplicationPkgNamepackageNamestartActivityi对于2.2只需替换上面putExtra的第一个参数为pkg综上通用的调用应用程序信息的代码如下view plaincopy to clipboardprintprivatestaticfinal String SCHEMEpackage/调用系统InstalledAppDetails界面所需的Extra名称用于
Android 2.1及之前版本/privatestaticfinal String APP_PKG_NAME_21com.
android.settings.ApplicationPkgName/调用系统InstalledAppDetails界面所需的Extra名称用于
Android 2.2/privatestaticfinal String APP_PKG_NAME_22pkg/InstalledAppDetails所在包名/privatestaticfinal String APP_DETAILS_PACKAGE_NAMEcom.
android.settings/InstalledAppDetails类名/privatestaticfinal String APP_DETAILS_CLASS_NAMEcom.
android.settings.InstalledAppDetails/调用系统InstalledAppDetails界面显示已安装应用程序的详细信息。
对于
Android 2.3Api Level9以上使用SDK提供的接口2.3以下使用非公开的接口查看InstalledAppDetails
源码。
param contextparam packageName应用程序的包名/publicstaticvoid showInstalledAppDetailsContext contextString packageNameIntent intentnew Intentfinalint apiLevelBuild.VERSION.SDK_INTifapiLevel9//2.3ApiLevel 9以上使用SDK提供的接口intent.setActionSettings.ACTION_APPLICATION_DETAILS_SETTINGSUri uriUri.fromPartsSCHEMEpackageNamenullintent.setDataurielse//2.3以下使用非公开的接口查看InstalledAppDetails
源码//2.2和2.1中InstalledAppDetails使用的APP_PKG_NAME不同。
final String appPkgNameapiLevel8APP_PKG_NAME_22APP_PKG_NAME_21intent.setActionIntent.ACTION_VIEWintent.setClassNameAPP_DETAILS_PACKAGE_NAMEAPP_DETAILS_CLASS_NAMEintent.putExtraappPkgNamepackageNamecontext.startActivityintent
上一篇:
Android程序员指南
下一篇:
法律专业开题报告范文