2

Android TV アプリを検索可能にしようとしており、グローバル検索をテストしています。ContentProvider を作成しました。何かを検索すると、そのクエリ メソッドが呼び出されます。問題は、カーソルを入力して返すときに発生します。その瞬間、グローバル検索がクラッシュし、LogCat はこれについて何も表示しません。このセクションの私のコードは次のとおりです。

MatrixCursor matrixCursor = new MatrixCursor(new String[]{
        "_id",
        SearchManager.SUGGEST_COLUMN_TEXT_1,
        SearchManager.SUGGEST_COLUMN_CONTENT_TYPE,
        SearchManager.SUGGEST_COLUMN_PRODUCTION_YEAR,
        SearchManager.SUGGEST_COLUMN_INTENT_ACTION,
        SearchManager.SUGGEST_COLUMN_INTENT_DATA,
        SearchManager.SUGGEST_COLUMN_INTENT_DATA_ID
});

matrixCursor.addRow(new Object[]{
        1,
        "movie 1",
        "video/mp4",
        2014,
        Intent.ACTION_SEARCH,
        "content://myauthority/videos/",
        1
});

matrixCursor.addRow(new Object[]{
        2,
        "video 2",
        "video/mp4",
        2013,
        Intent.ACTION_SEARCH,
        "content://myauthority/videos/",
        2
});

matrixCursor.addRow(new Object[]{
        2,
        "video 3",
        "video/mp4",
        2012,
        Intent.ACTION_SEARCH,
        "content://myauthority/videos/",
        3
});

return matrixCursor;

グローバル検索がどのように機能するかを確認するためにテスト カーソルを返そうとしていますが、何か間違ったことをしているに違いありません。

4

1 に答える 1

0

問題が見つかりました。SearchManager.SUGGEST_COLUMN_TEXT_1SearchManager.SUGGEST_COLUMN_CONTENT_TYPEおよびフィールドのみが必須であると考えていSearchManager.SUGGEST_COLUMN_PRODUCTION_YEARましたが (これは、Android 開発者の TV ガイドが言っていることです)、SearchManager.SUGGEST_COLUMN_RESULT_CARD_IMAGE必須でもあります。カード イメージがないと、グローバル検索がクラッシュします。これは、おそらく null ビットマップを設定しようとするためです。

于 2015-05-14T10:42:41.057 に答える