Titanium SDK 5.1.2 — разрешения Android 6.0

Начиная с SDK 5.1.0, целевой SDK должен быть 23, из-за чего некоторые разрешения перестают работать. Я имею в виду, что их нужно запрашивать во время выполнения, но Titanium SDK на самом деле не предоставляет способа сделать это.

Мне нужно читать и записывать на USB-накопитель и читать состояние телефона. Есть ли обходной путь? Будут ли методы запроса этих разрешений включены в будущие выпуски SDK?




Ответы (2)


Взгляните на пример приложения appc:

https://github.com/appcelerator-developer-relations/appc-sample-ti510/blob/master/app/controllers/permissions.js

Это пример того, как использовать новые разрешения. На данный момент вам нужно использовать разрешение камеры для доступа к внешнему хранилищу. Уже существует билет jira, в котором эти разрешения будут разделены.

person miga    schedule 23.01.2016
comment
А как насчет состояния телефона? Титаниум должен выставлять методы для всех видов разрешений. - person Shawn; 23.01.2016
comment
не уверен, есть ли в SDK какой-либо метод, использующий это разрешение. Но не стесняйтесь добавлять тикет на jira, что это разрешение отсутствует. В противном случае, если вы используете модуль, попробуйте добавить запрос функции на странице модуля. - person miga; 23.01.2016
comment
@Shawn Titanium SDK предоставляет requestXPermissions методы для всех разрешений, требуемых API Titanium. Если вы расширяете Titanium пользовательскими модулями, которым требуются другие разрешения, этот модуль должен реализовывать методы для запроса этих разрешений. - person Fokke Zandbergen; 25.01.2016
comment
Что ж, прямо сейчас я должен запросить разрешение камеры для разрешения на хранение. И нет способа запросить разрешение для состояния телефона. Мне это нужно для Ti.Android.registerBroadcastReceiver(обратный вызов, [android.intent.action.PHONE_STATE]). Я не использую никаких модулей. Я думаю, проблема в том, что targetSDK должен быть 23, но Titanium не предоставляет все разрешения requestXPermissions. - person Shawn; 27.01.2016
comment
Я имею в виду, что, возможно, Titanium SDK должен предоставить такую ​​функцию: @Kroll.method public void requestPermission(String permission) { Activity thisActivity = TiApplication.getInstance().getCurrentActivity(); if (ContextCompat.checkSelfPermission(thisActivity,permission) != PackageManager.PERMISSION_GRANTED) ActivityCompat.requestPermissions(thisActivity,new String[]{permission},0); }, чтобы мы могли запросить любое разрешение, какое захотим. - person Shawn; 28.01.2016

Пока вы также можете использовать специальный модуль - https://github.com/gimdongwoo/Ti-Android-RequestStoragePermission

Я проверил это в своем проекте, и он отлично работает.

person Waldek Mazurek    schedule 26.01.2016