Android 6.0 में, आप स्पष्ट रूप से अनुमति प्रदान करने के लिए कहें की जरूरत है। इसे मैनिफेस्ट में घोषित करना पर्याप्त नहीं है।
दस्तावेज़ों में यह article नया मॉडल सीखना शुरू करने के लिए एक शानदार जगह है, लेकिन मैं एक संक्षिप्त सारांश दूंगा।
हर बार जब आप एक "खतरनाक अनुमति" की आवश्यकता होती है, तो आपको यह जांचने की आवश्यकता होती है कि अनुमति वर्तमान में दी गई है, क्योंकि उपयोगकर्ता इसे किसी भी समय रद्द कर सकता है।
यह checkSelfPermission
विधि के साथ किया जा सकता है।
if (ContextCompat.checkSelfPermission(thisActivity, Manifest.permission.READ_PHONE_STATE)
!= PackageManager.PERMISSION_GRANTED) {
// We do not have this permission. Let's ask the user
}
आप के रूप में ऐसी
ActivityCompat.requestPermissions(thisActivity, new String[]{Manifest.permission.READ_PHONE_STATE}, PERMISSION_READ_STATE);
, requestPermissions
विधि के साथ अनुमति का अनुरोध कर सकते हैं कहाँ PERMISSION_READ_STATE
एक निरंतर पूर्णांक आप द्वारा परिभाषित किया गया बाद में कॉलबैक विधि में जांच करने के लिए है।
फिर आप अपनी गतिविधि में onRequestPermissionsResult
ओवरराइड करेंगे और देखें कि अनुमति दी गई थी या नहीं। यदि यह था, तो आप आगे बढ़ सकते हैं और खतरनाक कार्रवाई को पूर्ववत कर सकते हैं।
@Override
public void onRequestPermissionsResult(int requestCode,
String permissions[], int[] grantResults) {
switch (requestCode) {
case PERMISSION_READ_STATE: {
if (grantResults.length > 0
&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// permission granted!
// you may now do the action that requires this permission
} else {
// permission denied
}
return;
}
}
}
स्रोत
2016-02-10 15:55:17
https://stackoverflow.com/questions/32635704/cant-get-the-permission – CommonsWare
क्षमा सर मैं फिर से फिर से पूछते हैं, और जवाब –