在我努力让livefolders工作的绝望中,我在我的LiveFolder
ContentProvider
中尝试了以下操作:
public Cursor query(Uri uri, String[] projection, String selection,
String[] selectionArgs, String sortOrder) {
MatrixCursor mc = new MatrixCursor(new String[] { LiveFolders._ID, LiveFolders.NAME, LiveFolders.INTENT } );
Intent i = null;
for (int j=0; j < 5; j++) {
i = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com/"));
mc.addRow(new Object[] { j, "hello", i} );
}
return mc;
}
在正常情况下,当点击livefolder中的一个项目时,它应该启动浏览器并显示google主页。但它没有。它给出了一个
Application is not installed on your phone
错误。不,我没有为livefolder定义基本意图。logcat
:I/ActivityManager( 74): Starting activity: Intent { act=android.intent.action.VIEW dat=Intent { act=android.intent.action.VIEW dat=http://www.google.com/ } flg=0x10000000 }
它似乎嵌入了我给它的
Intent
部分。为什么要这么做?我真的开始相信这是一个平台缺陷。更新:我已经归档an issue并删除了livefolders特性。我会在我的应用程序中包括它,当我在这里或那里得到一个答复,澄清这件事。如果我有时间,我想我会上传一个演示应用到这个问题。
最新消息:我收到通知说赏金将在3天内到期。没人想要?:)
2010年4月25日更新:我已经在android项目上更新了the issue,并上传了一个测试应用程序。如果有人能在设备上测试这个应用程序,那就太好了,也许这是一个很微妙的问题,它只出现在模拟器上。
最佳答案
我也面临同样的问题;但不幸的是,我可以确认这一点:意图被包装到要激发的意图的数据部分。
我想知道是否对其他预定义的光标列进行了正确的计算;我考虑过为要返回的case自定义图标(每个条目,不是所有条目都有一个)提交一个bug;但是失败了。在整个网络中,我没有找到任何成功使用这些列的示例或人员;只有name和id似乎起作用。
这是android的主要usp特性之一,看起来它只是没有被普遍接受。