无法实施 Google API 'Search using a specific app'

Unable to implement Google API 'Search using a specific app'

我正在尝试根据 android documentation 实现“使用特定应用程序搜索”功能。但我无法让它工作。这是我的查询'Ok google,在 helloapp'

上搜索 xyz

以下是我的实现。我添加了不需要的元数据,但没有它也无法工作。

实施

清单

    <activity
        android:name=".MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
        <meta-data
            android:name="android.app.default_searchable"
            android:value=".SearchableActivity" />
    </activity>
    <activity
        android:name=".SearchableActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="com.google.android.gms.actions.SEARCH_ACTION"/>
            <category android:name="android.intent.category.DEFAULT"/>
        </intent-filter>

        <meta-data
            android:name="android.app.searchable"
            android:value=".SearchableActivity" />

    </activity>

可搜索Activity

public class SearchableActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.searchlayout);

        Intent intent = getIntent();
        if(SearchIntents.ACTION_SEARCH.equals(intent.getAction())){
            String query = intent.getStringExtra(SearchManager.QUERY);
            Toast.makeText(getApplicationContext(), query, Toast.LENGTH_LONG).show();
        }

    }

}

由此 post 得出结论,必须先发布该应用程序才能使用该功能。但是,我们可以使用以下 adb shell 命令

来模拟这一点
adb shell am start -a com.google.android.gms.actions.SEARCH_ACTION -e query 'search for xyz on..' packagename