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);

しかし、それはすべてのカメラアプリケーションをリストアップします。フィルタリングしたい。そして、OSに依存するカメラの全機能を実装する必要がある別の問題。

4

1 に答える 1

0

使用できるインテントには、主に2つの形式があります。

明示的インテントは、実行する正確なクラスを提供するコンポーネントを(setComponent(ComponentName)またはsetClass(Context、Class)を介して)指定しました。多くの場合、これらには他の情報は含まれず、ユーザーがアプリケーションを操作するときにアプリケーションが持つさまざまな内部アクティビティを起動するための手段にすぎません。

暗黙のインテントはコンポーネントを指定していません。代わりに、システムがそのインテントで実行するのに最適なコンポーネントを決定するのに十分な情報を含める必要があります。

したがって、明示的なインテントを使用できます。

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

これにより、インテントがデフォルトのカメラアプリケーションに確実に配信されます。

于 2013-03-08T04:28:30.507 に答える