私はアンドロイド開発者ではありません。私のアプリケーションのいくつかのテスト目的で、カメラをオンにして写真を撮るアプリを作成する必要がありました。
次のようなadbコマンドでこれを達成できました:
adb shell am start -a android.media.action.STILL_IMAGE_CAMERA
adb shell input keyevent 27
さて、この単純な 2 行のロジックをアプリに組み込みたいと思います。
そこで、次のコードを書きました。
//code to start camera preview intent
Intent action = new Intent("android.media.action.STILL_IMAGE_CAMERA");
action.putExtra("android.intent.extras.CAMERA_FACING", 1);
startActivity(action);
//code to hit the camera button
Instrumentation m_Instrumentation = new Instrumentation();
m_Instrumentation.sendKeyDownUpSync(KeyEvent.KEYCODE_CAMERA);
これを行うと、次のエラーが表示されます。
Injecting to other application requires Inject-Event permission
それについて調査している間、私は SO のスレッドに続いて actross に来ました:
指示に従い、アプリを /system/ フォルダーに追加しましたが、同じ問題に直面しました。
とにかく、この問題を解決できますか?
表面レイアウトを使用してアプリを作成するオプションがあることはわかっていますが、私は Android 開発者ではなく、必要がなければそのルートに行きたくありません。
どうすればそれを達成できるかについての提案はありますか?