может ли кто-нибудь знать, как добавить поддержку зефира в существующее приложение, которое приложение является премаршмарным приложением? как проверить разрешение во время выполнения или как написать код для проверки разрешения во время выполнения. и где этот код написан в приложении?Как добавить поддержку зефира к существующему предварительному применению Marshmallow
ответ
Для разрешения выполнения, я создал этот класс, который является универсальным и может быть использован в любом месте -
public class AppPermission {
public static boolean isMarshmallowPlusDevice() {
return Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP_MR1;
}
@TargetApi(Build.VERSION_CODES.M)
public static boolean isPermissionRequestRequired(Activity activity, @NonNull String[] permissions, int requestCode) {
if (isMarshmallowPlusDevice() && permissions.length > 0) {
List<String> newPermissionList = new ArrayList<>();
for (String permission : permissions) {
if (PackageManager.PERMISSION_GRANTED != activity.checkSelfPermission(permission)) {
newPermissionList.add(permission);
}
}
if (newPermissionList.size() > 0) {
activity.requestPermissions(newPermissionList.toArray(new String[newPermissionList.size()]), requestCode);
return true;
}
}
return false;
}
}
А затем поставить этот код, где требуется разрешение от USER-
if (!AppPermission.isPermissionRequestRequired(MyActivity.this, new String[]{"android.permission.GET_ACCOUNTS"},
REQUEST_APP_PERMISSION)) {
// Your code if permission available
}
После это, в вашем Fragment
или Activity
введите этот код -
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
switch (requestCode) {
case REQUEST_APP_PERMISSION:
for (int i = 0; i < permissions.length; i++) {
String permission = permissions[i];
int grantResult = grantResults[i];
switch (permission) {
case "android.permission.GET_ACCOUNTS":
if (PackageManager.PERMISSION_GRANTED == grantResult) {
// Your code
}
break;
}
}
break;
}
}
Вышеупомянутый код предназначен для разрешения запроса на GET_ACCOUNTS
, вы можете изменить его на все, что требуется.
Вы можете обратиться к официальной документации для Marshmellow:
https://developer.android.com/training/permissions/requesting.html
В соответствии с этой документацией, предоставление разрешения, когда используется функция введена в Android 6.0 (Зефир), поэтому я боюсь, что его не представляется возможным в предыдущие версии.
Однако, если пользователь использует телефон CyanogenMod
или MIUI
, есть приложения, которые обертывают модель разрешения акций Android-приложений и делают возможными динамические разрешения.
First check if the device is Android 6.0 by using below code
here is the example of read contacts
if(Build.VERSION.SDK_INT>Build.VERSION_CODES.LOLLIPOP_MR1){
// here check wheather runtime permission is granted or not
if (ContextCompat.checkSelfPermission(thisActivity,
Manifest.permission.READ_CONTACTS)
!= PackageManager.PERMISSION_GRANTED) {
// ask for permission
ActivityCompat.requestPermissions(thisActivity,
new String[]{Manifest.permission.READ_CONTACTS},
MY_PERMISSIONS_REQUEST_READ_CONTACTS);
}
else
return;
}
Don't forget to define permission in manifest fileYou can check permission in Home Screen please follow the link below
https://developer.android.com/training/permissions/requesting.html
- 1. Как добавить поддержку MFC к существующему проекту Win32 C++?
- 2. Доступ к декораторам из зефира при использовании колба-зефира
- 3. Как добавить к существующему Nsmutabledictionary?
- 4. Как добавить Stimulsoft report.js к применению Ember
- 5. Как добавить указатель касания к применению?
- 6. Intellij Idea добавляет поддержку Scala к существующему проекту Java
- 7. MongoJS добавить к существующему массиву
- 8. Добавить подзаголовок к существующему рисунку?
- 9. Добавить к существующему параметру TeamCity
- 10. Добавить CoreDataGeneratedAccessors к существующему классу
- 11. добавить вкладки к существующему проекту
- 12. Как добавить статический метод к существующему типу?
- 13. Как добавить раскрывающееся расширение к существующему меню
- 14. Python: Как добавить к существующему ключу словаря?
- 15. Как добавить значение ключа к существующему JToken
- 16. Как добавить пакет к уже существующему изображению?
- 17. Как добавить новую функцию к существующему компоненту?
- 18. Как добавить значение к существующему ключу
- 19. Как добавить переменную (строку) - к существующему объекту?
- 20. Как добавить RRA к существующему RRD?
- 21. Javascript: Как добавить геттер к существующему объекту
- 22. Как добавить UITabBarController к существующему проекту
- 23. Как добавить к существующему хешу в Ruby
- 24. Как добавить ключей к существующему многократным массиву
- 25. Как добавить аннотацию к существующему PDF
- 26. Как добавить Spring WebSecurityConfig к существующему проекту
- 27. Как добавить функцию к существующему с наследованием
- 28. Как добавить условие к существующему выражению лямбда?
- 29. Как добавить метод к существующему объекту?
- 30. Как добавить к существующему событию onclick?
Кто downvoted, пожалуйста, потрудились комментарий! – TechSpellBound