До сих пор я работал с более низкими версиями, поэтому я добавил разрешения в файл манифеста моего приложения. Но в marshmallow android 6.0 нам нужно использовать разрешения Runtime.Как использовать разрешение в android 6.0 marshmallow?
Может ли кто-нибудь объяснить мне, как использовать разрешение в 6.0 или предоставить какие-либо ссылки. Спасибо заранее.
код:
private static final int REQUEST_CAMERA = 0;
private static final int REQUEST_CONTACTS = 1;
private static final int REQUEST_LOCATION = 2;
private static final int REQUEST_PHONE = 3;
private static final int REQUEST_SMS = 4;
private static final int REQUEST_STORAGE = 5;
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
switch(requestCode) {
case REQUEST_CAMERA:
if (canAccessCamera()) {
doCameraThing();
}
else {
bzzzt();
}
break;
case REQUEST_CONTACTS:
if (canAccessContacts()&&canAccessContacts1()) {
doContactsThing();
}
else {
bzzzt();
}
break;
case REQUEST_LOCATION:
if (canAccessLocation()&&canAccessLocation_1()) {
doLocationThing();
}
else {
bzzzt();
}
break;
case REQUEST_PHONE:
if (canAccessPhone()) {
dophoneThing();
}
else {
bzzzt();
}
break;
case REQUEST_SMS:
if (canAccessSms()&&canAccessSms1() && canAccessSms2()) {
doSmsThing();
}
else {
bzzzt();
}
break;
case REQUEST_STORAGE:
if (canAccessStorage()) {
dostorageThing();
}
else {
bzzzt();
}
break;
}
}
//location
private boolean canAccessLocation() {
return(hasPermission(Manifest.permission.ACCESS_FINE_LOCATION));
}
private boolean canAccessLocation_1() {
return(hasPermission(Manifest.permission.ACCESS_COARSE_LOCATION));
}
//phone
private boolean canAccessPhone() {
return(hasPermission(Manifest.permission.READ_PHONE_STATE));
}
private boolean canAccessStorage() {
return(hasPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE));
}
//sms
private boolean canAccessSms() {
return(hasPermission(Manifest.permission.READ_SMS));
}
private boolean canAccessSms1() {
return(hasPermission(Manifest.permission.SEND_SMS));
}
private boolean canAccessSms2() {
return(hasPermission(Manifest.permission.RECEIVE_SMS));
}
//camera
private boolean canAccessCamera() {
return(hasPermission(Manifest.permission.CAMERA));
}
//contact
private boolean canAccessContacts() {
return(hasPermission(Manifest.permission.READ_CONTACTS));
}
private boolean canAccessContacts1() {
return(hasPermission(Manifest.permission.WRITE_CONTACTS));
}
private boolean hasPermission(String perm) {
return(PackageManager.PERMISSION_GRANTED==checkSelfPermission(perm));
}
private void bzzzt() {
Toast.makeText(this, R.string.toast_bzzzt, Toast.LENGTH_LONG).show();
}
private void doCameraThing() {
Toast.makeText(this, R.string.toast_camera, Toast.LENGTH_SHORT).show();
}
private void doContactsThing() {
Toast.makeText(this, R.string.toast_contacts, Toast.LENGTH_SHORT).show();
}
private void doLocationThing() {
Toast.makeText(this, R.string.toast_location, Toast.LENGTH_SHORT).show();
}
private void doSmsThing() {
Toast.makeText(this, R.string.toast_sms, Toast.LENGTH_SHORT).show();
}
private void dostorageThing() {
Toast.makeText(this, R.string.toast_storage, Toast.LENGTH_SHORT).show();
}
private void dophoneThing() {
Toast.makeText(this, R.string.toast_phone, Toast.LENGTH_SHORT).show();
}
<string name="toast_camera">Camera Permissions have been granted!</string>
<string name="toast_contacts">Contacts Permissions have been granted</string>
<string name="toast_location">Location Permissions have been granted</string>
<string name="toast_phone">Phone Permissions have been granted!</string>
<string name="toast_storage">Storage Permissions have been granted</string>
<string name="toast_sms">Sms Permissions have been granted</string>
я написал этот код. но я тестировал в android 6.0. он снова рушится. скажите, пожалуйста, что я сделал неправильно.
http://developer.android.com/training/permissions/requesting.html – CommonsWare
пожалуйста любой привести пример с несколькими разрешениями одновременно в onRequestPermissionsResult –
https: // GitHub. com/commonsguy/cw-omnibus/tree/master/Permissions/tutorial/finish/RuntimePermTutorial – CommonsWare