在我试图让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主页。但实际上没有这样做。它会出现“您的手机上未安装该应用程序”的错误。不,我没有为我的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
嵌入到实际触发的Intent
的data
部分中。为什么会这样?我真的开始相信这是平台的错误。
更新:我已经提交了一个问题并移除了LiveFolders功能。当我在这里或那里得到澄清时,我会将其包含在我的应用程序中。如果我有时间,我想我会在那个问题上上传一个演示应用程序。
更新:我收到通知,赏金将在3天后到期。没有人想要吗? :)
更新于04/25/2010: 我已经在Android项目中更新了这个问题,并上传了一个测试应用程序。如果有人能在设备上测试这个应用程序,那就太好了,也许这只是一个微妙的问题,只会出现在模拟器上。