判断快捷方式时候在左面

/**
 * 这里需要通过权限去获取当前手机provider.authority,因为不同的手机厂商可能对原生的provider.authority进行了修改
 * @param context
 * @param permission
 * @return
 */
private static 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;
}

通过上面的方法获取到provider.authority,在去判断是否已经创建了快捷方式

/**
 * 判断是否已有快捷方式,目前只对官方launcher有效
 *
 * @param context
 * @return
 */
public static boolean hasShortcut(Context context) {
    boolean isInstallShortcut = false;
    try {
        final ContentResolver cr = context.getContentResolver();
        String authority = getAuthorityFromPermission(context,"com.android.launcher.permission.READ_SETTINGS" );
        if(authority==null){
            isInstallShortcut = false;
        }
        final Uri CONTENT_URI = Uri.parse("content://" + authority + "/favorites?notify=true");
        ContentResolver resolver = context.getContentResolver();
        Cursor cursor = resolver.query(CONTENT_URI, new String[] { "title", "iconResource" }, "title=?", new String[] { context.getString(R.string.sns_moji_scenery).trim() }, null);
        if (cursor != null && cursor.moveToFirst()) {
            cursor.close();
            isInstallShortcut = true;
        }

    } catch (Exception e) {
        e.printStackTrace();
    }
    return isInstallShortcut;
}

参见:http://www.2cto.com/kf/201504/390384.htmlhttp://www.2cto.com/kf/201504/390384.html

            http://www.360doc.com/content/15/1113/13/9200790_512821184.shtml




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值