我正在使用代码调用Android中的意图
Intent intent = new Intent();
String PACKAGE_NAME="com...."
intent.setPackage(PACKAGE_NAME);
intent.setAction(Intent.ACTION_VOICE_COMMAND);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
getApplication().startActivity(intent);
不幸的是,在某些情况下,我不知道PACKAGE_NAME。所以,另一种方法是使用广播。我怎么用呢?谢谢大家
答案 0 :(得分:0)
如果您不知道该活动的包和名称,则不能直接致电活动。
由于您不知道包和活动名称,因此您只能询问操作系统以显示您的意图操作的所有可能变体。在大多数情况下,用户点击"始终打开此应用以执行此操作"这意味着你将直接打开另一个应用程序。
因此,在您的情况下,您的代码应该是
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VOICE_COMMAND);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
//dont forget to check if user has at least one application for your Intent Action
if (intent.resolveActivity(getPackageManager()) != null) {
context.startActivity(intent);
}