0

这是我的一段代码

Intent cameraintent= new Intent();
cameraintent.setAction(Intent.ACTION_CAMERA_BUTTON);
cameraintent.putExtra(Intent.EXTRA_KEY_EVENT, new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_CAMERA));
sendOrderedBroadcast(cameraintent, null);

但它列出了所有相机应用程序。我想过滤它。还有另一个问题,我需要实现依赖于操作系统的相机的全部功能。

4

1 回答 1

0

您可以使用两种主要形式的意图。

显式意图指定了一个组件(通过 setComponent(ComponentName) 或 setClass(Context, Class)),它提供了要运行的确切类。通常这些不会包含任何其他信息,只是作为应用程序在用户与应用程序交互时启动其具有的各种内部活动的一种方式。

隐式意图没有指定组件;相反,它们必须包含足够的信息,以便系统确定哪些可用组件最适合为该意图运行。

因此,您可以使用显式意图。

intent.setComponent(new ComponentName("com.android.camera", "com.android.camera.CameraButtonIntentReceiver"));

这将确保将意图传递给默认的相机应用程序。

于 2013-03-08T04:28:30.507 回答