原创作者: elvwong   阅读:9735次   评论:6条   更新时间:2011-06-01    
最近一直想找如何判断快捷方式是否已经创建的方法,最后终于结合几家算可以啦,不知道对不对,反正在XT800试是可以的。
其实快捷方式信息是保存在com.android.launcher的launcher.db的favorites表中,
相关代码:

		boolean isInstallShortcut = false ;
		final ContentResolver cr = context.getContentResolver();
		final String AUTHORITY = "com.android.launcher.settings";
		final Uri CONTENT_URI = Uri.parse("content://" +
			             AUTHORITY + "/favorites?notify=true");
		
		Cursor c = cr.query(CONTENT_URI,
		new String[] {"title","iconResource" },
		"title=?",
		new String[] {"XXX" }, null);//XXX表示应用名称。
				if(c!=null && c.getCount()>0){
			isInstallShortcut = true ;
		}
		/*try {
			while (c.moveToNext()) {
                                     String tmp = "";
				tmp = c.getString(0);
			}
			} catch (Exception e) {

			} finally {
				c.close();
			}*/
		return isInstallShortcut ;
	}



要有权限:
<uses-permission android:name="com.android.launcher.permission.READ_SETTINGS"/> 
评论 共 6 条 请登录后发表评论
6 楼 zhj198877 2013-04-16 15:14
很多定制机都不行,貌似没有通用的可行方法
5 楼 sunny_zhmj 2012-05-29 11:19
2.2以上用com.android.launcher2.settings
4 楼 gavin319 2011-04-26 13:08
飞雪无情 写道
gavin319 写道
我用的也是这种方法,但是我发现2.2及其之后的版本就用这个方法就判断不到了。。楼主有这种情况吗?!

2.2没试过,不过我看到2.2的 launcher.db数据库里还有favorites这个表,应该还可以用

嗯。。我也看到了。。而且里面的列也都是一样。。但是我这边的确是查询不到。
3 楼 飞雪无情 2011-04-26 11:24
gavin319 写道
我用的也是这种方法,但是我发现2.2及其之后的版本就用这个方法就判断不到了。。楼主有这种情况吗?!

2.2没试过,不过我看到2.2的 launcher.db数据库里还有favorites这个表,应该还可以用
2 楼 gavin319 2011-04-26 10:56
我用的也是这种方法,但是我发现2.2及其之后的版本就用这个方法就判断不到了。。楼主有这种情况吗?!
1 楼 bingtao115 2011-04-01 16:27
defy测试,可以判断出来

发表评论

您还没有登录,请您登录后再发表评论

文章信息

Global site tag (gtag.js) - Google Analytics