के लिए भंडारण और गैलरी उपयोग के लिए अनुमति पढ़ें और लिखें, मैं एक एंड्रॉइड ऐप विकसित कर रहा हूं जिसमें बाहरी संग्रहण को पढ़ने और लिखने के लिए अनुमति प्रदान करने की आवश्यकता है। मेरी आवश्यकता गैलरी से एक तस्वीर का चयन करना है और इसे मेरे ऐप में उपयोग करना है। Marshmallow उपकरणों को छोड़कर सबकुछ ठीक काम कर रहा है। मैं मार्शमलो के लिए अनुमति देना चाहता हूं। क्या कोई मुझे इस बारे में सहायता कर सकता है?marshmallow
उत्तर
निम्नलिखित के रूप में यह कुछ प्राप्त किया जा सकता ...
public class MainActivity extends AppCompatActivity implements ActivityCompat.OnRequestPermissionsResultCallback{
private static final int REQUEST_WRITE_PERMISSION = 786;
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
if (requestCode == REQUEST_WRITE_PERMISSION && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
openFilePicker();
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
requestPermission();
}
private void requestPermission() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
requestPermissions(new String[]{android.Manifest.permission.WRITE_EXTERNAL_STORAGE}, REQUEST_WRITE_PERMISSION);
} else {
openFilePicker();
}
}
}
Runtime permissions - Android M और its reference project के माध्यम से पढ़ें।
अनुमति प्रवाह में बदलाव आया है, जिसे रनटाइम पर अनुमतियों की आवश्यकता होती है, अधिमानतः, जब आवश्यक हो। इसके साथ ही .. अनुमतियों को Normal and Dangerous में भी वर्गीकृत किया गया है जो अनुमति समूहों का भी नेतृत्व करेंगे।
इसके अतिरिक्त, यदि आप एकाधिक अनुमतियों के लिए पूछना चाहते हैं। तुम यह केर सकते हो।
private ArrayList<String> permisos;
private void someMethod()
{
..
verificarPermisos(Manifest.permission.READ_EXTERNAL_STORAGE);
verificarPermisos(Manifest.permission.ACCESS_FINE_LOCATION);
verificarPermisos(Manifest.permission.ACCESS_COARSE_LOCATION);
if (permisos.size()!=0)
{
solicitarPermisos(permisos.toArray(new String[permisos.size()]));
}
..
}
@TargetApi(23)
void verificarPermisos(String permiso){
if (ContextCompat.checkSelfPermission(this,permiso)
!= PackageManager.PERMISSION_GRANTED) {
permisos.add(permiso);
// Should we show an explanation?
if (shouldShowRequestPermissionRationale(permiso)) {
}
}
}
@TargetApi(23)
void solicitarPermisos(String[] permiso){
requestPermissions(permiso, 1);
}
पहले, मैं अगर अनुमति पहले ही दे दी या साथ नहीं "verificarPermisos()" विधि है की जाँच करें। अगर उन्हें प्रदान नहीं किया जाता है, तो मैं उन्हें "परमिट" सरणी सूची में जोड़ता हूं। अंत में, असंबद्ध अनुमतियों को स्ट्रिंग [] सरणी प्रारूप में पास करने के लिए उन्हें पुनः प्राप्त किया जाता है।
ध्यान दें कि आप केवल मैशमोलो (एपीआई 23) या उच्चतर के बाद से अनुमतियों का अनुरोध कर सकते हैं। इसलिए, यदि आपका ऐप मैशमोलो से पहले एंड्रॉइड संस्करणों को भी लक्षित कर रहा है तो आप "@TargetApi()" एनोटेशन का उपयोग कर सकते हैं और अनुमति विधियों को केवल तब कहा जा सकता है जब लक्ष्य API 23 या उच्चतर हो।
मदद करने के लिए आशा है, बधाई।
- 1. एंड्रॉयड कस्टम अनुमतियां - Marshmallow
- 2. एंड्रॉयड Marshmallow अनुमति मॉडल हमेशा
- 3. javax.crypto.Cipher के बाद से एंड्रॉयड 6 Marshmallow
- 4. एंड्रॉयड Marshmallow कस्टम seekbar प्रगति बार
- 5. IndexOutOfBoundsException repopulating के बाद ArrayList (Marshmallow केवल)
- 6. एंड्रॉयड 6.0 (Marshmallow) अनुमति जब अनुमति
- 7. एंड्रॉयड 6.0 (Marshmallow) getDeclaredField() पर स्थिर प्रारंभ अपवाद
- 8. एंड्रॉइड marshmallow पर realPath वापसी शून्य प्राप्त करें?
- 9. चूंकि marshmallow BluetoothAdapter.getDefaultAdapter()। StartDiscovery() का उपयोग करके ब्लूटूथ खोज अपडेट करें। टूटा हुआ है
- 10. क्या मुझे marshmallow में getExternalFilesDir() पथ में लिखने के लिए रनटाइम अनुमति जांच की आवश्यकता है?
- 11. एपीआई में एक() onOptionsItemSelected() के अंदर विश्राम पर त्रुटि आ रही है 23/Marshmallow
- 12. Android Marshmallow (API> = 23) में क्रोम इतिहास और बुकमार्क कैसे प्राप्त करें?
- 13. एंड्रॉइड marshmallow गतिशील अनुमति परिवर्तन सभी आवेदन प्रक्रियाओं को मारता है
- 14. एंड्रॉइड में स्टेटस बार अधिसूचना आइकन 'रंग/टिंट कैसे बदलें (marshmallow और 23+ से ऊपर)?
- 15. प्रतीक Manifest.permission.READ_PHONE_STATE
- 16. FileObserver एंड्रॉइड 6.0 मार्शमलो (एपीआई 23)
- 17. एंड्रॉइड अधिसूचना मार्शमलो में रंग चिह्न नहीं दिखा रहा है
- 18. हम पेजरटिटलेस्ट्रिप और पेजरटैबस्ट्रिप में रिक्त शीर्षक के आसपास कैसे काम कर सकते हैं?
- 19. स्टेटस बार और नेविगेशन बार पर Google नाओ ग्रेडियेंट/छाया
- 20. एंड्रॉइड 6.0 - ऐप अनइंस्टॉल करने पर बाहरी स्टोरेज फाइलों को हटाया जा रहा है
- 21. मार्शमलो (23) + रीसाइक्लर व्यू (23.1.0) स्क्रॉलिंग आइटम को हटाए जाने के बाद उपरोक्त सामग्री को गड़बड़ कर देती है (नोटिफ़ाइम हटाया गया)
- 22. मार्शमलो में फ्लैशलाइट नियंत्रण
- 23. अलार्म प्रबंधक Android 6.0
- 24. एंड्रॉइड डिवाइस मॉनीटर का फ़ाइल एक्सप्लोरर एंड्रॉइड 7 (एपीआई 24+)
- 25. SMSMessage createFromPdu
- 26. एंड्रॉइड 4.4 पर एसएसएल हैंडशेक अपवाद और निचले
- 27. जावा एचटीएमएल कक्षा
- 28. विशिष्ट तत्व अन्य तत्व
- 29. "परिणाम इंडेक्स -1 है, बहुभुज अमान्य होना चाहिए!" एडटर addView()
- 30. एंड्रॉइड प्रोग्रामिंग NameValuePair api 23
ओएस स्तर के अनुसार अनुमति नहीं बदलती है। यह नीचे जैसा ही है। <उपयोग-अनुमति एंड्रॉइड: नाम = "android.permission.WRITE_EXTERNAL_STORAGE" /> <उपयोग-अनुमति एंड्रॉइड: name = "android.permission.READ_EXTERNAL_STORAGE" /> –
मैंने पहले ही अपने मैनफैस्ट में यह अनुमति दी है .. लेकिन ऐप जब marshmallow उपयोगकर्ता गैलरी से छवि का चयन करता है तो दुर्घटनाग्रस्त हो जाती है .. – tiger
की अनुमति देने की अनुमति इससे कोई फर्क नहीं पड़ता कि अनुमति अलग है। यह है कि आपको रनटाइम –