问题:
1.shortcut在2.3上创建后,假如应用升级并修改了app名称,shortcut不会自动更新,仍显示原名字。
2.如果此时强制更新,则会创建新的shortcut,而不是覆盖原shortcut。
3.判断shortcut是否存在时,某些机型LauncherProvider的查询路径不是com.android.launcher.setting.
先说前两个问题,前两个问题的解决办法只是写逻辑上的判断了,先判断应用的shortcut存不存在,然后删除添加任你选。所以只要搞定hasShortcut()这个方法就ok。
然后再说第三个问题,判断shortcut是否存在其实就是去LauncherProvider的数据库里面查询这条数据在不在。
现在大多数机型用的都是android的默认launcher,包名为com.android.launcher,这个数据库一般在data/data/com.android.launcher/database据库里 的launcher.db的favorites表。查询的URI=”"content://com.android.launcher.settings/favorites?notify=true“。 但是android 2.2以后的URI则变为了URI=”"content://com.android.launcher2.settings/favorites?notify=true“.
另外像三星,htc,小米,华为等手机却将launcher改成了他们自己的launcher,颇感无语,其对应包名如下:
miui: com.miui.home
huawei: com.huawei.android.launcher
htc: com.htc.launcher
samsung: com.sec.android.app.launcher
所以这里查询的URI="content://" + packageName + ".settings/favorites?notify=true"。
恩,这里另附数据