She*_* GM 13 icons android shortcut android-launcher
我想以编程方式获取主屏幕启动器中所有已安装快捷方式的列表.我在网上找到了很多片段,但没有一个提供正确的输出
对于此片段:
Intent shortcutsIntent = new Intent(Intent.ACTION_CREATE_SHORTCUT);
ArrayList<Intent> intentList = new ArrayList<Intent>();
Intent intent=null;
String launchers="";
final PackageManager packageManager=getPackageManager();
for(final ResolveInfo resolveInfo:packageManager.queryIntentActivities(shortcutsIntent, 0)) {
launchers=launchers+"\n"+resolveInfo.activityInfo.packageName;
intent=packageManager
.getLaunchIntentForPackage(resolveInfo.activityInfo.packageName);
intentList.add(intent);
}
Run Code Online (Sandbox Code Playgroud)
这只提供联系人,浏览器等预设快捷方式.不完全是在主屏幕上找到的.
而这个片段:
PackageManager pm = getPackageManager();
Intent i = new Intent("android.intent.action.MAIN");
i.addCategory("android.intent.category.HOME");
List<ResolveInfo> lst = pm.queryIntentActivities(i, 0);
if (lst != null) {
for (ResolveInfo resolveInfo : lst) {
}
}
}
Run Code Online (Sandbox Code Playgroud)
仅提供com.android.launcher的默认启动器.
我的回答可能会晚一些,但可能对其他人有用。
检查我的代码:
if (Build.VERSION.SDK_INT <8)
{
url = "content://com.android.launcher.settings/favorites?Notify=true";
}
else
{
url = "content://com.android.launcher2.settings/favorites?Notify=true";
}
ContentResolver resolver = getContentResolver();
Cursor cursor = resolver.query (Uri.parse(url), null, null, null, null);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3645 次 |
| 最近记录: |