美文网首页
Android 启动快捷方式

Android 启动快捷方式

作者: 铁皮阿童木 | 来源:发表于2017-06-09 16:31 被阅读0次

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

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

    方法如下

    //获取到所有快捷方式
     Intent shortcutsIntent = new Intent(Intent.ACTION_CREATE_SHORTCUT);
            List<ResolveInfo> 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 启动快捷方式

          本文链接:https://www.haomeiwen.com/subject/hedfqxtx.html