Domanda

Ho un'applicazione che ha due provider di suggerimenti di ricerca che si estendono sia SearchRecentSuggestionsProvider, e l'ho impostato correttamente nel file Manifest con il seguente filtro e meta-dati generatori generacoli:

<intent-filter>
   <action android:name="android.intent.action.SEARCH" />
</intent-filter>

<meta-data
   android:name="android.app.searchable"
   android:resource="@xml/searchable_tv" />
.

La risorsa serable include Intent, in modo che dovrebbe andare bene.

E ovviamente ho ricevuto un fornitore anche:

<provider
   android:name="com.miz.contentprovider.TvShowContentProvider"
   android:authorities="com.miz.contentprovider.TvShowContentProvider"
   android:exported="true" />
.

Tutto ciò ha funzionato bene in Android 4.3 utilizzando l'applicazione di ricerca Google, ma ho appena aggiornato tutti i miei dispositivi su Android 4.4 e non sono più in grado di cercare contenuti nella mia applicazione. La stessa cosa va per altre applicazioni che hanno funzionato prima dell'aggiornamento del sistema operativo, I.e. Google Play Music.

Ho trovato un thread su sviluppatori XDA che menziona anche questo, se aiuta: http://forum.xda-developers.com/showthread.php?p=47472102

Qualcuno ha idea di cosa sta succedendo o come può essere risolto?

Aggiornamento: posso confermare che si verifica solo sui dispositivi con Android 4.4. Ho testato su un dispositivo Android 4.3 utilizzando l'ultimo aggiornamento di ricerca di Google e funziona come previsto. Sembra che sia un bug nell'aggiornamento di Google.

È stato utile?

Soluzione

Ho trovato questo commit in AOSP, che potrebbe essere correlato: https://android.googlesource.com/platform/packages/apps/QuickSearchBox/+/ecf356c15143ab0583c64682de16d94a57f7dd1c

Il messaggio commit ci dice che questa funzione è stata rimossa a causa dei motivi di prestazione (che potrebbe o non potrebbe essere vera, dato che fa riferimento a un ID del biglietto interno e non ho trovato un problema relativo a questo sul bugtracker ufficiale).

Altri suggerimenti

Ho controllato con i contatti su Google e Indicizzazione dell'app sta sostituendo questo.La documentazione verrà aggiornata per mostrare questo come deprecata e non c'è modo di ottenere questa funzione per lavorare sul kit Kat senza autorizzazioni di livello di sistema (come Idev ha mostrato sopra).

Google Chrome appare ora come app ricercabile dal suo ultimo aggiornamento (V31).

Applicazione del sistema:

Ho provato come questo

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.globalsearch" android:sharedUserId="android.uid.shared">
    <uses-permission android:name="android.permission.GLOBAL_SEARCH" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.SET_PREFERRED_APPLICATIONS" />
    <application android:label="@string/global_search" android:process="android.process.acore">
        <activity android:name=".GlobalSearch" android:permission="android.permission.GLOBAL_SEARCH_CONTROL" android:stateNotNeeded="true" android:theme="@android:style/Theme.NoDisplay" android:excludeFromRecents="true">
            <intent-filter>
                <action android:name="android.intent.action.SEARCH" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
            <!-- This must be higher than the default priority (0), which
is what GoogleSearch uses. -->
            <intent-filter android:priority="500">
                <action android:name="android.search.action.GLOBAL_SEARCH" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
            <meta-data android:name="android.app.searchable" android:resource="@xml/searchable" />
        </activity>
        <activity android:name=".SearchSettings" android:label="@string/search_settings">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.search.action.SEARCH_SETTINGS" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
        <provider android:name=".SuggestionProvider" android:authorities="com.android.globalsearch.SuggestionProvider" android:permission="android.permission.GLOBAL_SEARCH_CONTROL" />
        <provider android:name=".StatsProvider" android:authorities="com.android.globalsearch.stats" android:permission="android.permission.GLOBAL_SEARCH_CONTROL" />
        <meta-data android:name="android.app.default_searchable" android:value=".GlobalSearch" />
    </application>
</manifest>
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top