私は完全に機能しているアプリを持っています。それは私のカメラインテントまたはパーミッションに1つの問題があります。OKボタンを押したときに、Androidのカメラアクティビティがアプリに返されない
ユーザーがボタンを押すと、カメラの動作が開始されます。それは正常に動作しているが、ユーザーがカメラの[OK]ボタンをクリックして画像を受け入れると、アプリに戻ってこない。カメラのキャンセルボタンを押すと、期待通りにアプリに戻ってきます。
私はここで見つけることができるすべての同様の質問を読みましたが、誰も私の問題を解決していません。私は私のアプリで2の間で交互にしたいので、画像を保存する場所をカメラに正確に伝える必要があります。
Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, Uri.parse(imagePath));
startActivityForResult(intent, 11);
私は(文字列である)imagePath
に複数の値を試してみましたが、カメラのOKボタンは、それらのいずれかで働いていません。ここではカメラの意図を作成し、それを起動するコードです。これらは私が試したパスです:
/mnt/sdcard/<appName>/cameraImages/image1.jpg
from Environment.getExternalStorageDirectory()
/mnt/sdcard/Android/data/<appPkg>/cache/<appName>/cameraImages/image1.jpg
from context.getExternalCacheDir()
/mnt/sdcard/Android/data/<appPkg>/cache/<appName>/cameraImages/image1.jpg
from context.getCacheDir()
私は私のマニフェストファイルに次の権限を持っている:
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" android:required="false" />
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false" />
<uses-feature android:name="android.hardware.camera.flash" android:required="false" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
君たちは私が私のコードが悪いのかを把握助け、または私に何を伝えることができます有効なパスは?ユーザーがアプリケーションを終了してもイメージが存在し続けることは重要ではないため、イメージがキャッシュの場所に格納されている場合は優先しますが、イメージへのアクセス権を持つユーザーは本当に気にしません。
私はすべてのテストを4.1エミュレータで行い、4.1 SDKでコンパイルしています。私の最小バージョンはAPI 8(2.2)です。
私はonActivityResult()
にインテントのケースを入れましたが、問題に影響してはならないため、コードを見る必要はありません。
実デバイスで一度チェックしてください。またチェック[this](http://stackoverflow.com/a/7224771/646806) – RobinHood
'onActivityResult()'が呼び出されていますか?ログに何かが見えますか? –
誰かが 'imagePath'の' context.getCacheDir() 'を使ってアプリのバージョンをチェックしました。カメラアプリの[OK]ボタンは機能しません。また、OKボタンを押すと 'onActivityResult()'が呼び出されません。 – cmasupra