无法实施 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
我正在尝试根据 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