3

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されたセクションに私が与えるを埋め込むようです。なぜこれを行うのですか?プラットフォームのバグだと本当に信じ始めています。dataIntent


更新:問題を報告し、LiveFolders 機能を削除しました。このことを明確にする応答があちこちで得られたら、アプリに含めます。時間があれば、その号にデモ アプリをアップロードすると思います。


更新:報奨金が 3 日で期限切れになるという通知を受け取りました。誰も欲しくない?:)


2010 年 4 月 25 日更新: Android プロジェクトの問題を更新し、テスト アプリケーションをアップロードしました。誰かがデバイスでこのアプリケーションをテストできればいいのですが、エミュレーターでしか発生しない微妙な問題かもしれません。

4

3 に答える 3

1

私も同様の問題を抱えています。CursorWindowCursor がデータを送信するときに、、、、などfillWindowしかできないためだと思います。実際のオブジェクト (ICON_BITMAP) または Intent オブジェクト (INTENT) を渡す方法がわかりません。MatrixCursor は、任意のオブジェクトに対して実行します。Intent オブジェクトでは、" " のようになります。システムがこれを適切な URI に正しく解釈しているとは思いません。putBlobputStringputLongBitmap.toString()Intent { act=android.intent.action.EDIT dat=URI }

インテントを にシリアル化しようとしましたputBlobが、インテントはシリアル化できません。私が作業に取り掛かったのは、単に URI を Intent フィールドとして渡すことだけです。これは、特定の URI に対するデフォルト アクションのみを提供しますが、機能します。nullEXTRA_LIVE_FOLDER_BASE_INTENT を指定しても、Intent に" " を指定するとエラーになるという問題もあります。カーソルでフィールドをまったく指定しない場合、基本的な意図は機能しますが、フィールドを null として指定すると失敗します。基本的な意図に戻るようには見えません。

お役に立てれば...

于 2011-09-16T03:46:34.683 に答える
1

私も同じです。残念ながらそれを確認できます。インテントは、起動されるインテントのデータ部分にラップされています。

他の事前定義された CURSOR 列が正しく評価されるかどうか疑問に思っています。カスタム アイコン (すべてのアイコンではなく、エントリごと) が返される場合にバグを報告することを考えました。しかし失敗しました。Web 全体で、これらのコラムを使用して成功した例や人物は見つかりませんでした。名前とIDだけが機能しているようです。

これは Android の主要な USP 機能の 1 つですが、一般に受け入れられていないようです。

于 2010-06-03T22:14:39.323 に答える
0

コンポーネント名をハードコーディングしてみてください。

Intent intent = new Intent();
ComponentName comp = new ComponentName("com.google.android.browser",
                                   "com.google.android.browser.BrowserActivity");
intent.setComponent(comp);
intent.setAction("android.intent.action.VIEW");
intent.addCategory("android.intent.category.BROWSABLE");
Uri uri = Uri.parse(url);
intent.setData(uri); 
于 2010-04-25T06:48:35.487 に答える