В отчаянии, пытаясь заставить 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;
}
Что, как правило, должно запускать браузер и отображать главную страницу Google при нажатии на элемент в LiveFolder. Но это не так. Это дает ошибку 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
, который я даю, в секцию data
фактически запущенного Intent
. Почему он это делает? Я действительно начинаю верить, что это ошибка платформы.
Обновление: Я подал проблему и удалил функцию LiveFolders. Я включу его в свое приложение, когда получу ответ, здесь или там, который проясняет эту вещь. Если у меня будет время, я думаю, что загружу демонстрационное приложение для этой проблемы.
Обновление: Я получил уведомление о том, что срок действия вознаграждения истекает через 3 дня. Никто не хочет этого? :)
Обновление 25.04.2010: Я обновил проблему в проекте Android и загрузил тестовое приложение. Было бы неплохо, если бы кто-то мог протестировать это приложение на устройстве, возможно, это такая тонкая проблема, что она появляется только в эмуляторе.