2012-10-05 27 views
13

我想以编程方式获得主屏幕启动器中所有安装的快捷方式列表。 我发现很多片段的在线,但他们没有提供正确的输出如何获得在主屏幕启动器中找到的所有安装的快捷方式列表android

这个片断:

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);  
} 

这只是提供了预设快捷键如联系人,浏览器等。不完全是在主屏幕中找到的。

,而这个片段:

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) { 
      } 
     } 
    } 

只提供了默认的启动是com.android.launcher。

+0

嘿你有它的任何解决方案?我也陷入类似的问题?你能帮我吗.. – Rahil2952

+0

不,我没有,我告诉我的客户,这是不可能获得这些信息,他们理解。 –

+0

k thanx您的回复.. – Rahil2952

回答

1

我的答案可能会迟到,但它可能对其他人有用。

检查我的代码:

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); 
相关问题