【发布时间】:2016-11-09 04:21:19
【问题描述】:
我的手机安装了两个语音搜索:google app 和 S-voice app。默认应用是 S-voice 应用,如下图。我的问题是,我们如何在 Android 6.0 中以编程方式获取默认语音应用程序。提前谢谢你
这就是我所做的
private boolean isMyAppLauncherDefault(String myPackageName) {
final IntentFilter filter = new IntentFilter(Intent.ACTION_MAIN);
filter.addCategory(Intent.CATEGORY_HOME);
List<IntentFilter> filters = new ArrayList<IntentFilter>();
filters.add(filter);
List<ComponentName> activities = new ArrayList<ComponentName>();
final PackageManager packageManager = (PackageManager) getPackageManager();
packageManager.getPreferredActivities(filters, activities, null);
for (ComponentName activity : activities) {
Log.d(TAG,"======packet default:==="+activity.getPackageName());
}
for (ComponentName activity : activities) {
if (myPackageName.equals(activity.getPackageName())) {
return true;
}
}
return false;
}
当我的输入是com.samsung.voiceserviceplatform 时,上述函数总是返回true。另一方面,默认应用总是返回com.google.android.googlequicksearchbox(表示谷歌语音)
【问题讨论】:
-
您需要以程序方式启动 Google App 吗?
-
不,先生,我只需要从默认设置打开 google 或 svoice 应用程序。例如,如果我的默认设置是 svoice,我将启动 svoice。如果我的默认语音设置是谷歌语音,我会拨打谷歌语音
标签: android android-intent android-6.0-marshmallow android-settings google-voice