[安卓] 如何判断桌面已经添加APP应用的快捷方式
来源:互联网 发布:手机虚拟电吉他软件 编辑:程序博客网 时间:2024/06/04 17:44
在开发过程中,遇到一个需求是要在桌面创建应用程序的快捷的方式,当时从网上一查资料,发现还挺简单的,可是做完之后发现在判断桌面是否已经创建快捷方式这一块出了问题。
一开始按照网上的方法我是这样判断桌面是否已经创建快捷方式的:
private boolean isShortCutCreat() {boolean isInstallShortCut = false;ContentResolver contentReslver = getContentResolver();String AUTHORITY = null;if(Build.VERSION.SDK_INT>=8){AUTHORITY = "com.android.launcher2.settings";}else{AUTHORITY = "com.android.launcher.settings";}Uri content_uri = Uri.parse("content://" + AUTHORITY+ "/favorites?notify=true");Cursor cursor = contentReslver.query(content_uri, new String[] { "title", "iconResource" }, "title=?", new String[] { getString(R.string.app_name)}, null);if(null!=cursor&&cursor.getCount()>0){isInstallShortCut = true;}return isInstallShortCut;}如果是安卓原生的系统,按照上面的方式是可以正确拿到上面的AUTHORITY以判断快捷方式是否已创建,但是在今天这个各大手机厂商随意定做ROM的年代,用上面的方式显然已经不能满足需求,(因为在我的小米手机上就拿不到AUTHORITY...)。之后在网上找了很多解决的办法都没有很好的解决,最后发现了一个获得AUTHORITY的好方法,分享出来给大家:
public String getAuthorityFromPermission(Context context, String permission){ if (permission == null){ return null; } List<PackageInfo> packs = context.getPackageManager().getInstalledPackages(PackageManager.GET_PROVIDERS); if (packs != null) { for (PackageInfo pack : packs) { ProviderInfo[] providers = pack.providers; if (providers != null) { for (ProviderInfo provider : providers) { if (permission.equals(provider.readPermission)) return provider.authority; if (permission.equals(provider.writePermission)) return provider.authority; } } } } return null; }经过测试,按照上面的方法不管是山寨机还是小米和华为,基本上都能正确获得AUTHORITY,从而判断出快捷方式是否已经创建。
0 0
- [安卓] 如何判断桌面已经添加APP应用的快捷方式
- 为我们的安卓app自动生成桌面快捷方式
- App添加桌面快捷方式
- 添加应用桌面快捷方式的方法
- ubuntu在桌面添加应用的快捷方式
- 给app添加桌面快捷方式
- 如何在android桌面添加几个app图标做快捷方式?
- 如何在android桌面添加几个app图标做快捷方式
- 判断桌面快捷方式是否已经创建
- android应用添加桌面快捷方式
- 关于如何添加桌面快捷方式
- 如何添加“显示桌面”快捷方式
- ubuntu如何添加桌面快捷方式
- 安卓创建桌面快捷方式
- Android 添加App快捷方式到桌面
- Android应用添加(创建)和删除及判断是否存在桌面快捷方式
- Android应用添加(创建)和删除及判断是否存在桌面快捷方式
- Android应用添加(创建)和删除及判断是否存在桌面快捷方式
- APMServ5.2.6 升级php5.2 到 5.3版本及Memcache升级!
- 归档日志文件管理
- kindeditor使用方法
- 标准爬虫初探,来自Python之父的大餐!
- VC下常用类型转换(UNICODE)
- [安卓] 如何判断桌面已经添加APP应用的快捷方式
- MatLab的多线程(并行运算)
- 闪回日志管理
- C++中三种正则表达式比较(C regex,C ++regex,boost regex)
- Object-C Property and Synthesize
- java中的File文件读写操作
- memcached的安装与软件查找
- 秒杀多线程系列学习总结
- Java WeakReference SoftReference