آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

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

parsi bit  10 سال پیش  9 سال پیش
0 0

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

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

اما تو اندروید 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" />

 

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

+2 0
یه راه ساده ، میتونید SdkTarget رو روی 22 قرار بدید اینجوری دیگه کرش نمیکنه و نیازی به مجوز تو اندروید 6 نیست . (10 سال پیش)
 برای این سوال 2 پاسخ وجود دارد.
پاسخ به سوال 
Hossein Lamei Ramandi  10 سال پیش
+2 0

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

 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
}
}
0 0
وقتی میشه این مشکل رو با گذاشتن sdk target روی 22حل کرد چرا از این روش استفاده میشه؟ (9 سال پیش)
+1 0
این روشی که شما میگین منطقی نیست. خوب تا ابد که نمیشه target sdk رو روی ۲۲ گذاشت تازه اگه همیشه جواب بده که یه جاهایی نمیده.ما باید خودمون رو با اندروید وفق بدیم.این قضیه شبیه متدای دپریکست شده هستش. خلاصه بهتره به روز باشیم (9 سال پیش)
پاسخ به سوال 
parsi bit  10 سال پیش
+1 0

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

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

 

 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);
}

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