Гость
Форумы / Android [игнор отключен] [закрыт для гостей] / Запрос permission / 9 сообщений из 9, страница 1 из 1
17.09.2018, 09:48
    #39703366
Slon747
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос permission
На API >= 23 нужно запрашивать разрешение перед использованием геолокации.
Делаю как в инструкции:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
import android.support.v4.app.ActivityCompat;
...
...
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED
                && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
            Toast toast = Toast.makeText(this, "Permission failed", Toast.LENGTH_SHORT);
            toast.show();
            return 0;
        }



Ф-я checkSelfPermission() подсвечивается красным "cannot resolve metod".
Что не так?
Может android-support-v4.jar нужен другой?
...
Рейтинг: 0 / 0
17.09.2018, 10:08
    #39703383
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос permission
В манифесте какие версии сдк установлены?
...
Рейтинг: 0 / 0
17.09.2018, 13:08
    #39703545
Slon747
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос permission
wadmanВ манифесте какие версии сдк установлены?

Код: xml
1.
2.
3.
    <uses-sdk
            android:minSdkVersion="9"
            android:targetSdkVersion="23"/>



В свойствах проекта:

Build target: Android API 17
JDK: jdk1.8.0_172
...
Рейтинг: 0 / 0
17.09.2018, 13:14
    #39703548
alex55555
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос permission
Slon747API >= 23
Slon747Build target: Android API 17
Слон, ну включи мозг.
...
Рейтинг: 0 / 0
17.09.2018, 14:09
    #39703619
Slon747
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос permission
alex55555,

Понял. Спасибо.
...
Рейтинг: 0 / 0
18.09.2018, 16:07
    #39704385
Slon747
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос permission
Всё же не получается запросить permission.
targetSdkVersion=26
Build target: Android API 26

ContextCompat.requestPermissions() - "canot resolve metod requestPermissions()"

Если же убрать ContextCompat, то ф-я выглядит так:
Код: java
1.
requestPermissions(String[] permissions, int requestCode)


И про нее не могу найти информацию.
...
Рейтинг: 0 / 0
19.09.2018, 10:09
    #39704745
A Serious Man
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос permission
Slon747,

Вот так будет работать
Код: java
1.
2.
3.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && (checkCallingOrSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED || checkCallingOrSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED)) {
			isStorageAccess = false;
		}
...
Рейтинг: 0 / 0
19.09.2018, 11:50
    #39704822
Slon747
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос permission
A Serious ManВот так будет работать
Код: java
1.
2.
3.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && (checkCallingOrSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED || checkCallingOrSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED)) {
			isStorageAccess = false;
		}



Спасибо.
Я так и пробовал, но по невнимательности запрашивал через requestPermissions() уже существующее разрешение. В результате происходило зацикливание.
Теперь работает.

И всё же мне не понятно, почему везде пишут про ActivityCompat.checkSelfPermission() хотя у меня нет такого метода в ActivityCompat.
Может всё потому, что нужно наследовать свою активити от ActivityCompat?
...
Рейтинг: 0 / 0
19.09.2018, 12:18
    #39704837
A Serious Man
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос permission
Slon747A Serious ManВот так будет работать
Код: java
1.
2.
3.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && (checkCallingOrSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED || checkCallingOrSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED)) {
			isStorageAccess = false;
		}



Спасибо.
Я так и пробовал, но по невнимательности запрашивал через requestPermissions() уже существующее разрешение. В результате происходило зацикливание.
Теперь работает.

И всё же мне не понятно, почему везде пишут про ActivityCompat.checkSelfPermission() хотя у меня нет такого метода в ActivityCompat.
Может всё потому, что нужно наследовать свою активити от ActivityCompat?
Да, везде так пишут. Должно работать, наверно. Но мне нужна была не совсем свежая апи (иначе отлетала другая либа на которую разраб забил, а без нее труба) и поэтому я пошел тем путем и все стало окай!
...
Рейтинг: 0 / 0
Форумы / Android [игнор отключен] [закрыт для гостей] / Запрос permission / 9 сообщений из 9, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]