আমিও একই সমস্যার মুখোমুখি হয়েছি। অ্যান্ড্রয়েডে দুটি ধরণের অনুমতি রয়েছে:
- বিপজ্জনক (পরিচিতিগুলিতে অ্যাক্সেস, বাহ্যিক স্টোরেজে লিখুন ...)
- সাধারণ (সাধারণ অনুমতিগুলি অ্যান্ড্রয়েড দ্বারা স্বয়ংক্রিয়ভাবে অনুমোদিত হয় তবে বিপজ্জনক অনুমতিগুলি অ্যান্ড্রয়েড ব্যবহারকারীদের দ্বারা অনুমোদিত হওয়া প্রয়োজন))
অ্যান্ড্রয়েড .0.০-তে বিপজ্জনক অনুমতি পাওয়ার কৌশল এখানে
- আপনার অনুমতি অনুমোদিত হয়েছে কিনা তা পরীক্ষা করুন
- যদি আপনার অ্যাপ্লিকেশনটিকে ইতিমধ্যে অনুমতি দেওয়া হয়েছে, তবে এগিয়ে যান এবং সাধারনত সম্পাদন করুন।
- যদি এখনও আপনার অ্যাপ্লিকেশনটির অনুমতি না থাকে তবে ব্যবহারকারীকে অনুমোদনের জন্য বলুন
- ব্যবহারকারীর অনুমোদনের কথা শুনুন
onRequestPermissionsResult
এখানে আমার কেস: আমার বাহ্যিক স্টোরেজে লিখতে হবে।
প্রথমে, আমি আমার অনুমতি আছে কিনা তা পরীক্ষা করে দেখি:
...
private static final int REQUEST_WRITE_STORAGE = 112;
...
boolean hasPermission = (ContextCompat.checkSelfPermission(activity,
Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED);
if (!hasPermission) {
ActivityCompat.requestPermissions(parentActivity,
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
REQUEST_WRITE_STORAGE);
}
তারপরে ব্যবহারকারীর অনুমোদন পরীক্ষা করুন:
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
switch (requestCode)
{
case REQUEST_WRITE_STORAGE: {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED)
{
//reload my activity with permission granted or use the features what required the permission
} else
{
Toast.makeText(parentActivity, "The app was not allowed to write to your storage. Hence, it cannot function properly. Please consider granting it this permission", Toast.LENGTH_LONG).show();
}
}
}
}