بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
پرسیدن دسترسی دراندروید 6 به بعد فقط برای بار اول
سلام من کد زیر رو برای زمانی که بخواد مجوز دسترسی تو اندروید 6 به بالا بگیره رو می گذارم منتها میخوام زمانی که اجازه توسط کاربر صادر شد برای بار اول ، برای بارهای دیگه این پیام رو نشون نده چی باید بکنم
با تشکر
int REQUEST_INTERNET = 1;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M &&
(ContextCompat.checkSelfPermission(Session.this, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED)) {
requestPermissions(new String[]{
android.Manifest.permission.WRITE_EXTERNAL_STORAGE
, android.Manifest.permission.READ_EXTERNAL_STORAGE
, android.Manifest.permission.READ_PHONE_STATE
}, REQUEST_INTERNET);
} else {}
0
0
اول چک کن ببین پرمیشن بهش داده یا نه اگه نداشت این کد اجرا کنه اگه نه هم که هیچی
(8 سال پیش)
برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال
وحید گروسی
8 سال پیش
0
0
متد زیر رو وقتی میخوای رویداد اتفاق بیفته قرار بده و مثلاً با یه دکمه صداش کن
البته مجوز هاتو تو منیفست باید لحاظ کنی و یه نکته دیگه اینجا من SMS زدم شما هر چی نیازتون بود بزارین
if (ActivityCompat.checkSelfPermission(MainActivity.this, Manifest.permission.SEND_SMS)!= PackageManager.PERMISSION_GRANTED) {
if (ActivityCompat.shouldShowRequestPermissionRationale(MainActivity.this, Manifest.permission.SEND_SMS)) {
Snackbar.make(btn, "برای گرفتن عکس، این دسترسی لازم است", Snackbar.LENGTH_LONG).setAction("اجازه دادن", new View.OnClickListener() {
@Override
public void onClick(View view) {
ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.SEND_SMS}, 100);
}
}).show();
} else {
ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.SEND_SMS}, 100);
}
} else {
afterPermission();
}
و بعد برای اینکه بفهمی که درخواست داده شده یا نه از متد زیر استفاده کن
if (requestCode == 100) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {afterPermission();
} else {
if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.SEND_SMS)) {
Snackbar.make(view, "برای گرفتن عکس، این دسترسی لازم است", Snackbar.LENGTH_LONG).setAction("اجازه دادن", new View.OnClickListener() {
@Override
public void onClick(View view) {
ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.SEND_SMS}, 100);
}
}).show();
} else {
Snackbar.make(view, "برای گرفتن عکس، این دسترسی لازم است", Snackbar.LENGTH_LONG).setAction("اجازه دادن", new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent i = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
i.setData(Uri.fromParts("package", getPackageName(), null));
startActivity(i);
}
}).show();
}
}
}
متد زیر هم اگه تو کد های بالا دقت کنی وقتی بهش مجوز داده میشه صدا زده میشه و عملی انجام میده.
private void afterPermission() {
Toast.makeText(this, "دسترسی داده شد!", Toast.LENGTH_SHORT).show();
G.sendTestSms();
}
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .