मैं कैमरे से एक छवि कैप्चर करना चाहता हूं और इसे निजी ऐप कैश निर्देशिका में सहेजना चाहता हूं। मुझे एहसास है कि मुझे अपनी निजी निर्देशिका में लिखने के लिए कैमरा ऐप अनुमति देना है, इसलिए मैंने FLAG_GRANT_WRITE_URI_PERMISSION
ध्वज जोड़ा।कैमरे से निजी ऐप कैश निर्देशिका में स्टोर छवि
क्या हो रहा है, कैमरा ऐप खुलता है, मैं तस्वीर ले सकता हूं, लेकिन जब मैं ठीक बटन पर क्लिक करता हूं, तो कुछ भी नहीं होता है। कैमरा ऐप खुला रहता है। कोई लॉग आउटपुट नहीं। मुझे लगता है कि यह एक अनुमति समस्या के कारण है।
private void getCameraImage() {
try {
mTmpFile = File.createTempFile("tmp", ".jpg", getCacheDir());
Uri imgUri = Uri.fromFile(mTmpFile);
Intent i = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
i.putExtra(MediaStore.EXTRA_OUTPUT, imgUri);
i.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
// i.setData(imgUri); // if uncommented, i get an ActivityNotFound Exception
startActivityForResult(i, REQUEST_CAMERA);
} catch (IOException e) {
Log.e(TAG, "getCameraImage()", e);
Toast.makeText(this, "Something went wrong", Toast.LENGTH_SHORT).show();
}
}
किसी भी अंतर्दृष्टि, पर मैं कैसे, जिसे ठीक कर सकता है?
संपादित करें:
जब मैं सार्वजनिक एसडी कार्ड के लिए निर्देशिका बदलने के लिए, तो यह ठीक काम करता है।
mTmpFile = File.createTempFile("tmp", ".jpg", Environment.getExternalStorageDirectory());
धन्यवाद साइमन
यदि यह अनुमति समस्या थी, तो लॉगकैट में एक त्रुटि दिखाई देगी। – PearsonArtPhoto
इसके बारे में निश्चित नहीं है। यहां तक कि जब मैं FLAG_GRANT_WRITE_URI_PERMISSION ध्वज को हटाता हूं, मुझे कोई लॉग आउटपुट नहीं मिलता है। हो सकता है कि कैमरा ऐप अनुमति की जांच करे, और अगर वह फ़ाइल नहीं लिख सकता है तो बस कार्रवाई को रोक देता है। – SimonSays