بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

درخواست مجوز (Permission) برای اندروید 6 (حل شده)

مدیریت گفتگو
parsi bit 10 سال پیش
آخرین تغییر: 10 سال پیش

سلام...روز همگی بخیر...

من یه برنامه دارم که پرداخت درون برنامه ای مایکت داره

اما تو اندروید 6 و بالاتر! باید هنگام اجرای برنامه از کاربر بخوای تا این مجوز رو بهت بده.

در حالت عادی (برای مجوزهایی مثل حافظه و ...) به این صورته:

  if (checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) {
    Log.i(G.LogTag, "Permission is granted");
} else {
Log.i(G.LogTag, "Permission is revoked");
ActivityCompat.requestPermissions(StartActivity.this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);
}

 

سوال من اینه که چطور باید برای مجوز پرداخت مایکت به کاربر این درخواست رو نشون بدم؟

اینم از مجوز مایکت در manifest :

<uses-permission android:name="ir.mservices.market.BILLING" />

 

ممنون از شما... :)

نظرات

SaLaH KuRD 10 سال پیش
یه راه ساده ، میتونید SdkTarget رو روی 22 قرار بدید اینجوری دیگه کرش نمیکنه و نیازی به مجوز تو اندروید 6 نیست .

پاسخ‌ها 2

Hossein Lamei Ramandi 10 سال پیش

برای نمایش اون پیام به کاربر :

 ActivityCompat.requestPermissions(MainActivity.this,newString[]{Manifest.permission.READ_EXTERNAL_STORAGE},1);

برای فهمیدن نتیجه :

@Override 
public void onRequestPermissionsResult(int requestCode,String permissions[],int[] grantResults){
switch(requestCode){
case1:{// If request is cancelled, the result arrays are empty.
if(grantResults.length >0&& grantResults[0]==PackageManager.PERMISSION_GRANTED){
/*HERE PERMISSION IS ALLOWED. * * YOU SHOULD CODE HERE*/

}
else{Toast.makeText(MainActivity.this,"Permission deny to read your External storage",Toast.LENGTH_SHORT).show();
}
return;
}// other 'case' lines to check for other// permissions this app might request
}
}

نظرات

Mehran 10 سال پیش
وقتی میشه این مشکل رو با گذاشتن sdk target روی 22حل کرد چرا از این روش استفاده میشه؟
amirhossein1376 10 سال پیش
این روشی که شما میگین منطقی نیست. خوب تا ابد که نمیشه target sdk رو روی ۲۲ گذاشت تازه اگه همیشه جواب بده که یه جاهایی نمیده.ما باید خودمون رو با اندروید وفق بدیم.این قضیه شبیه متدای دپریکست شده هستش. خلاصه بهتره به روز باشیم
parsi bit 10 سال پیش

خب از شما ممنونم...

این چیزی بود که خودم بهش رسیدم...و جواب هم گرفتم!

 

 if (checkSelfPermission("ir.mservices.market.BILLING")
        == PackageManager.PERMISSION_GRANTED) {
Log.i(G.LogTag, "Permission is granted");
} else {
Log.i(G.LogTag, "Permission is revoked");
ActivityCompat.requestPermissions(StartActivity.this, new String[]{"ir.mservices.market.BILLING"}, 1);
}

نظرات


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .