系统 OTA升级后,新预制的APK 在桌面没有图标的问题

launcher没有allAppButton菜单,apk图标都在桌面上排;
在新的版本里面预制apk后,做OTA升级,发现桌面没有这个apk的图标,清空launcher3数据后,就会出现;这个问题是launcher3备份桌面保存的数据没有更新引起的;在RK平台目前做的解决方式是发送创建apk快捷图标的广播;或者recovery的时候清空launcher3数据;这个是在launcher3中的Workspace.java中添加的
下面这个是在网上搜索到的,有作用,其它的都没用
http://blog.csdn.net/myth13141314/article/details/68926849

但是要注意一点的是不能截断创建图标广播

frameworks/base/services/core/java/com/android/server/am/BroadcastQueue.java
if("background".equals(mQueueName)&& "com.android.launcher.action.INSTALL_SHORTCUT".equals(r.intent.getAction()))
-                    return;
+                    //return;
         }
             if (! mPendingBroadcastTimeoutMessage) {
                 long timeoutTime = r.receiverTime + mTimeoutPeriod;
  /**
     * 添加当前应用的桌面快捷方式
     * 
     * @param context
     */
    public static void addShortcut(Context context) {
        Intent shortcut = new Intent(
                "com.android.launcher.action.INSTALL_SHORTCUT");

        Intent shortcutIntent = context.getPackageManager()
                .getLaunchIntentForPackage("com.android.remotecare.generic");
        shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
        // 获取当前应用名称
        String title = null;
        try {
            final PackageManager pm = context.getPackageManager();
            title = pm.getApplicationLabel(
                    pm.getApplicationInfo(context.getPackageName(),
                            PackageManager.GET_META_DATA)).toString();
        } catch (Exception e) {
        }
        // 快捷方式名称
        shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, "Remotecare");
        // 不允许重复创建(不一定有效)
        shortcut.putExtra("duplicate", false);
        // 快捷方式的图标
        Parcelable iconResource = Intent.ShortcutIconResource.fromContext(context,
                R.drawable.delete_text);
        shortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, iconResource);

        context.sendBroadcast(shortcut);
    }

要添加权限

  <!-- 添加快捷方式 -->
    <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
    <!-- 移除快捷方式 -->
    <uses-permission android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT" />
    <!-- 查询快捷方式 -->
    <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
    <uses-permission android:name="com.android.launcher2.permission.READ_SETTINGS"/>
    <uses-permission android:name="com.android.launcher3.permission.READ_SETTINGS"/>
--------------------- 

还有一种方式recovery的时候清空launcher3数据,这个方法必须是在上一个版本有修改这个方法,否则无效,recovery是在上一个版本里面执行
https://download.csdn.net/download/m1126125223/10935570
https://download.csdn.net/download/m1126125223/10937969

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

心有纤纤结

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值