Android 启动快捷方式

最近想在APP中启动其他应用的快捷方式(不是启动应用,而是启动类似绿色守护中那种,关屏并休眠的快捷方式)

在网上找了很多文章,大部分都是讲如何设置快捷方式,并没有说如何用代码启动,就稍微折腾了一下。

方法如下

//获取到所有快捷方式
 Intent shortcutsIntent = new Intent(Intent.ACTION_CREATE_SHORTCUT);
        List shortcuts = getPackageManager().queryIntentActivities(
                shortcutsIntent, 0);
        for (ResolveInfo resolveInfo : shortcuts) {
            String name = resolveInfo.activityInfo.applicationInfo.packageName;
            String activityName = resolveInfo.activityInfo.name;
            String label=resolveInfo.activityInfo.applicationInfo.name;
            int flags=resolveInfo.activityInfo.flags;
            Log.i(TAG, "updatePackages: "+name+" "+activityName+" "+flags+" "+label);
        }

//启动方式如下
        ActivityInfo ai=shortcuts.get(7).activityInfo;
        String pkgName=ai.applicationInfo.packageName;
        String activityName=ai.name;
        int flag=ai.flags;
        Intent intent = new Intent(Intent.ACTION_MAIN);
        intent.setClassName(pkgName,
                activityName);
   
        intent.addFlags(flag);
        startActivity(intent);

//获取对应icon方法如下
 Intent intent = new Intent(Intent.ACTION_MAIN);
        intent.setClassName(pkgName,
                activityName);
        intent.addFlags(flag);
        try {
            Drawable dw=pm.getActivityIcon(intent);
        } catch (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
        }

在这个地方踩到一个坑:
如果手机内有“冰箱”这类的应用将app停用,app或者快捷方式就无法打开了。

你可能感兴趣的:(Android 启动快捷方式)