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("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不同。
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);
}
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";
这是正确代码,主要是action问题
分享到:
相关推荐
svchost.exe应用程序错误崩溃 原因查看和解决
Access 偏移注入:解决列名获取不到的情况查看登陆框源代码的表单值或观察 URL 特征等也可以针对表或列获取不到的情况select 查询数据在网站应用中进行
访问网址进入快速开始并获取更多详细信息; 背景 日常使用 Java 开发,常常会遇到包依赖冲突的问题,尤其当工程应用变得臃肿庞大,包冲突的问题也会变得更加棘手,导致各种各样的报错,例如LinkageError, ...
针对Fluent初学者或者进阶者而言,总会遇到许多问题,就算看视频做例子都会出错,那么这里将会给大家列举做Fluent过程中所遇到的种种问题及解决办法。(如果涉及侵权请联系删除)
各种悲剧之后终于解决了vc6.0 打开文件报错的问题 “0x5003eaed 的内存错误” 感慨收录下 从 Microsoft 下载中心下载下列文件有: FileTool.exe ...
补充知识:python logging 日志 通过修饰器获取错误信息 今天公司要求研究一下python日志相关的信息,用户通过使用图形化界面产生错误后并不知道为什么报错。因此,要通过日志实现记录错误的功能。 import ...
代码可以直接运行,如果报错请看我的博客 http://blog.csdn.net/wang6279026/article/details/8098100 里面有解决办法
现代操作系统应用开发之UWP开发 ------ API的获取以及C#中Json的解析(天气预报的获取和历史上的今天查询) 做这个小程序的时候,看了好多网上的Json解析的方法,主要流行的是使用Newtonsoft.Json类库来实现, 我也...
Gradle报错解决方法 错误:无法获取' '。 从服务器收到状态码400:错误的请求启用Gradle“离线模式”并同步项目 步骤1:文件->>设置->>构建,执行,->>渐变->> android studio->>启用。。。。 步骤2:编辑配置文件,...
觉得不是很好理解,有的时候我们只是需要动态的从一个组件中获取数据(官网称为“组件层级”:是个独立的控件,作用范围只在组件之内)然后想放到一个被官网称作“应用层级”(在项目的任意地方都可以随时获取和动态...
CLR.via.C#.(中文第3版)(自制详细书签)Part2 CLR via C#(第3版) Jeffrey Richter 著 周靖 译 出版时间:2010年09月 页数:800 介绍 享有全球盛誉的编程专家Jeffrey Richter,这位与Microsoft .NET开发团队合作...
前面的一篇博文较详细地介绍了uiautomatorviewer:扫描和分析Android应用程序的UI控件的工具。 熟悉控件获取的同学都知道,使用uiautomatorviewer可以抓取到的用来定位控件的元素大概有 text resource-id content...
3.信息发布系统提供完美的UBB可视化编辑解决方案,在您获得安全高效代码存储的同时,又能享受可视化编辑的便捷。(同时程序保留CKeditor接口). 4.信息发布系统开启立即上传模式(默认为附件和图片,为了安全不开启视频...
所以,如果在项目中需要使用相对路径来获取静态的资源文件,需要怎么做呢? 1、修改webpack配置文件中的assetsPublicPath,修改为如下图所示。 修改配置后,进行打包发现,打包后的index.html文件中,对css等文件的...
Gradle报错解决方法 错误:无法获取' '。从服务器收到状态码400:错误的请求启用Gradle“离线模式”并同步项目 步骤1:文件->>设置->>构建,执行,->>渐变->> android studio->>启用。。。。 步骤2:编辑配置文件,...
d代表编译调试版本,no-shared代表生成静态库./config no-shared -dmakemake install二,Windows下编译perl建议选择开源的Strawberry,不要选择商业版的ActivePerl,要不然会碰到其他的小问题需要解决的方法编译静态...
进入快速开始并获取更多详细信息;背景日常使用 Java 开发,常常会遇到包依赖冲突的问题,尤其当工程应用变得臃肿庞大,包冲突的问题也会变得更加棘手,导致各种各样的报错,例如LinkageError, NoSuchMethodError等...
3.11 增加FLEX,在本地测试版本开启,FLEX是Flipboard官方发布的一组专门用于iOS开发的应用内调试工具,能在模拟器和物理设备上良好运作,而开发者也无需将其连接到LLDB/Xcode或其他远程调试服务器,即可直接查看或...
5.优化订单获取 增加了进度条显示 解决部分虚拟主机卡死问题 6.优化了 Windows IIS 下 Linux Apache 和Nginx 下运行问题 7.增加优惠券功能 (后台可以开启关闭) 8.增加宝贝缩略图保存本地开关 9.优化值得买 部分...
传参及获取返回参数的思路及代码.NET实现:将EXE设置开机自动启动asp.net运行原理 详解ASP.NET也像WinForm程序一样运行的实现方法Asp.net在IIS上运行不了的解决方法ASP.NET 缓存分析和实践浅析提高运行效率在.net应用...