- 浏览: 427316 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
xinzhengjie:
服务器用什么实现
pjsip -
yxhloen01:
只放debug.keystore但是没给密码啊。。。。。。 ...
静默安装实现方法 -
tabolt:
android 应用强制停止 -
li1046964106:
[color=green][size=x-small][ali ...
安卓图表引擎AChartEngine(二) - 示例源码概述和分析 -
smallk2013:
用你这个方法为什么我只想模拟点击 无法实现啊
Android下执行Runtime.getRuntime().exec后返回状态
“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启动应用程序信
息界面了。代码如下:
view plain
Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
Uri uri = Uri.fromParts(SCHEME, packageName, null);
intent.setData(uri);
startActivity(intent);
但是,在Android 2.3之前的版本,并没有公开相关的接口。
通过查看系统设置platform/packages/apps/Settings.git程序的源码,可以发现应用程序信息界面为InstalledAppDetails。
在这里(2.1)还有这里(2.2),我们可以分别看到Android2.1和Android2.2的应用管理程序(ManageApplications.java)是如何启动InstalledAppDetails的。
view plain
// 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);
}
但是常量APP_PKG_NAME的定义并不相同。
2.2中定义为"pkg",2.1中定义为"com.android.settings.ApplicationPkgName"
那么,对于2.1及以下版本,我们可以这样调用InstalledAppDetails:
view plain
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);
对于2.2,只需替换上面putExtra的第一个参数为"pkg"
综上,通用的调用“应用程序信息”的代码如下:
view plain
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);
}
发表评论
-
圆盘旋转菜单
2013-08-27 23:35 864调用系统APP信息进行显示 -
Android下执行Runtime.getRuntime().exec后返回状态
2012-11-14 15:45 10205private String doExec(String cm ... -
获取APK文件的签名信息,反射实现
2012-11-14 15:12 2276private String showUninstallAPK ... -
获取APK文件的签名信息,反射实现
2012-11-14 15:12 1220private String showUninstallAPK ... -
android编辑单个工程
2012-09-14 14:54 807编译模块:android中的一个应用程序可以单独编译,编译后要 ... -
判断力应用程序安装位置
2012-09-05 09:28 859从Android 2.2开始软件可以安装到SD卡上,在API ... -
获取手机中已安装apk文件信息(应用图片、应用名、包名等)
2012-08-28 22:17 4080通过PackageManager可以获取手机端已安装的apk文 ... -
查询手机内所有支持分享的应用
2012-08-28 22:15 840/** * 查询手机内所有支持分享的应用 ... -
获取手机/SD卡内存大小(可用/全部)
2012-08-27 15:58 853//这个是手机内存的可用空间大小 static public ... -
语音识别
2012-08-26 15:21 807识别的语音列表listview显示出来,进行一些搜索等操作 -
android 应用强制停止
2012-08-23 17:50 6360在写应用的过程中,我们经常会遇到一些应用之间可能有冲突之类的, ... -
ViewPager中使用Gallery!
2012-08-02 17:21 2341mPager.setOnTouchListener(new V ... -
android平台短信中心号获取
2012-08-07 11:12 1152就是直接获取用户手机中的短信中心号,该种方式需要你的应用满足两 ... -
Android ViewPager多页面滑动切换以及动画效果
2012-07-18 14:46 3535一、首先,我们来看一下效果图,这是新浪微博的Tab滑动效果。我 ... -
判断程序或者服务是否在前台运行
2012-07-15 23:07 10431.private boolean isTopActivity ... -
自定义标题栏
2012-07-11 15:24 9291. 代码中 requestWindowFeature(Win ... -
自定义对话框的主题
2012-07-11 15:19 894一、1.manifest.xml中 <activity ... -
调用选择图片、视频、添加音频、录音、拍摄视频、拍照等其他的功能
2011-06-23 20:30 1217//选择图片 requestCode 返 ... -
list中添加数据
2011-04-02 16:11 8379tabHost.addTab(tabHost.newTabSp ... -
QQ上的tabhost效果
2011-03-28 16:40 1286import android.app.Activity; im ...
相关推荐
在Android系统中,获取应用程序信息是一项常见的任务,无论是开发者调试应用、系统管理员监控系统状态,还是用户了解设备上的软件详情,都可能需要用到这样的功能。这个名为"获取Android系统程序信息 源代码"的资源...
一、Android应用程序结构 Android应用由一系列组件构成,包括Activity、Service、Broadcast Receiver、Content Provider等。Activity是用户界面的入口,处理用户交互;Service在后台执行长期运行的任务,不与用户...
总的来说,通过Intent调用Android系统设置是Android应用开发中的常见操作,它使开发者能够轻松地引导用户进入系统界面,提供更丰富的用户体验。不过,要注意遵循Android的权限模型,尊重用户隐私,避免不必要的系统...
Android应用程序框架是构成Android应用程序的基本结构,它定义了应用程序如何与Android操作系统交互以及如何管理和控制应用程序的行为。Android应用开发主要依赖于Java语言,通过调用Android提供的各种API来实现功能...
4. **启动安装流程**:通过调用`startActivity(intent)`来触发系统默认的应用程序安装界面。 ### 方法二:使用PackageManager进行直接安装 这种方式更加底层,通过`PackageManager`类提供的`installPackage()`方法...
总之,“ApplicationList”源码是一个深入了解Android系统应用程序管理和信息获取的好教材。通过学习和分析这个类,开发者不仅可以学会如何获取Android系统的程序信息,还能掌握Android系统层面的编程技巧和最佳实践...
这个启动界面通常是在应用程序打开时用户首先看到的,它可能包含品牌标识、加载动画或者简单的欢迎信息,目的是在应用程序完全启动之前提供一个视觉反馈,提升用户体验。 Android应用开发主要基于Java语言,因此...
它详细介绍了如何构建高质量、高性能的Android应用程序,涵盖了从基本概念到高级特性的各个方面。以下是一些主要的知识点: 1. **Android SDK和开发环境**:书中首先引导读者设置Android开发环境,包括安装Android ...
"安卓Android源码——获取系统程序信息.zip"这个压缩包很可能包含了用于解析和显示系统中安装的应用程序信息的相关代码。下面,我们将深入探讨这一主题,围绕Android源码、系统程序信息的获取以及可能涉及的技术细节...
在Android操作系统中,获取应用程序列表是一项常见的任务,无论是为了创建自定义的应用管理界面还是进行其他与应用相关的功能。本文将详细讲解如何优化地获取系统及用户应用程序列表,并探讨相关的关键知识点。 ...
在Android平台上,应用程序(Application)是用户与操作系统交互的核心组件,它是所有功能和界面的起点。Android应用由多个组件构成,包括活动(Activity)、服务(Service)、广播接收者(BroadcastReceiver)以及...
这本书详细介绍了如何利用Android平台开发高质量、功能丰富的应用程序,适用于有一定编程基础并希望深入Android开发的专业人士。 在Android 2.0的时代,这本书提供了一系列关键知识点,包括: 1. **Android SDK和...
在安卓(Android)平台上,应用启动加载界面是用户体验的重要组成部分,它通常出现在应用程序启动时,显示品牌标识或进度条,给用户一个应用正在准备运行的视觉反馈。实现这样的加载界面可以提升应用的专业感,同时...
### Android SDK之:Application Fundamentals——应用程序基础知识 #### 概述 在Android开发领域中,了解应用程序的基础构建单元以及它们如何交互至关重要。本篇将详细探讨Android应用程序的基础知识,包括其构建...
- **Java框架** (Application Framework): 提供了一组API供开发者调用,简化了应用程序的开发过程。 - **Java应用程序** (Application): 这是最顶层,开发者直接在此层编写应用程序。 #### 四、Android开发工具 ...
在Android开发中,有时我们需要获取应用程序的名称,这可能是为了显示在用户界面上,或者用于...这个示例展示了如何在Android中获取并显示应用程序的名称,这对于任何需要在用户界面上展示应用信息的场景都非常有用。