• 0
Авторизация  
Igor

[Android] Как изменить область разрешений (Permissions) приложению?

Вопросы

При установке приложения появляется список "Разрешить этому приложению", в данном списке куча всего казалось бы моему приложению не требуемого, в том числе: "Платные услуги".

Не могу понять как определить данный список под приложение, чтобы лишнего оно не просило при установке и не пугало пользователей.

 

Подумал может в deployment где-то это, или в uses надо что-то убрать, но не знаю чего, нагуглить тоже не выходит.

 

Помогите пожалуйста.

 

Список:

  • Ваше местоположение
  • Сетевой обмен данными
  • Личная информация
  • Память
  • Телефонные вызовы
  • Управление оборудованием
  • Платные услуги (Посылать прямые вызовы на номера телефонов)

и ещё под скрыть:

  • Инструменты разработки (Проверьте доступ к защищенному хранилищу) - это может в режиме дэбага такое, если нет, то как убрать тоже не пойму..

P.S.:

 

Из всего перечисленного кажется нужно только: 

  • Память, т.к. создаю txt файл и сохраняю в него данные (да и нужно ли для этого такое разрешение?)

Возможно ещё, но вряд ли:

  • Личная информация, для определения времени на устройстве, но думаю это не то, и время и так определяется.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

10 ответов на этот вопрос

  • 0

Андроид требует от приложений, чтобы они сообщали, какой функционал устройства будут использовать при работе.

Чтобы использовать какой-то функционал, необходимо запросить разрешение (дать права) у системы. Сделать это можно в окне «Uses Permissions»(Project > Options > Uses Permissions).

 

Более подробно можно почитать в справке http://docwiki.embarcadero.com/RADStudio/XE6/en/Uses_Permissions

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Спасибо) 

Оставил: Read calendar и Write external storage

Этого должно пока хватить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Почему-то сетевой обмен данными не пропал из разрешений и инструменты разработчика, но инструменты полагаю из-за того, что не релиз, но полный доступ к сети почему не ушёл? не стоит галки нигде кроме Write external storage

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Проверил в XE6 Upd1, подтверждаю, баг вернулся…
Закрытые рапорты в QC – Оригинал 119595 Дубликат 123891

Как их снова открыть я не знаю (может новый завести?!), тут помочь могут только представители Embarcadero.


p.s. Я уже начал составлять свой собственный список багов (уже 8 штук набралось) :) , посмотрю когда их исправят…

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Могу ошибаться, но как вариант может быть в каком-то файле проекта можно пока подтереть нужную строку или дописать
.
Как например из-за отсутствия вкладки ориентации (формфактора), чтобы заблокировать смену ориентации (оставив только вертикальную) в файле .dpr вписывается:

Application.FormFactor.Orientations := [TFormOrientation.Portrait];

после

Application.Initialize;

Хм, кстати нашёл кажется, в файле .dproj
есть строка:

<AUP_WRITE_EXTERNAL_STORAGE>true</AUP_WRITE_EXTERNAL_STORAGE>

похоже это то, что как раз у меня стоит и стоять должно, осталось найти только то, что стоит, но не должно)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Вот временное решение (вписываем разрешения вручную):

Открываете файл AndroidManifest.template.xml, находите строчку <%uses-permission%>, удаляете её и вместо неё вписываете вручную необходимые разрешения, компилите проект и всё тип-топ.

 

Вот примеры:

    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.CALL_PHONE" />
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.READ_CALENDAR" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.WRITE_CALENDAR" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Да, мой способ не помог, там и так

<AUP_INTERNET>false</AUP_INTERNET>

стоит.

 

Ваш способ сработал, спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

По поводу "Бага".

Я создал рапорт в QC 127007 и там разъяснили ситуацию.

Это не баг, подробности читайте тут http://docwiki.embarcadero.com/RADStudio/XE6/en/Release_Notes_for_XE6#INTERNET_Permission_Always_Set_for_Debug_Configuration_on_Android.

 

Разрешение на Интернет необходимо в режиме отладки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.
Авторизация  

  • Похожий контент

    • От Pulsarius
      Привет, форумчане! Я уже как-то задавал подобный вопрос, но видимо никто не сталкивался с этим. Может быть сейчас кто-нибудь столкнулся. Эта проблема качует из версии в версию и никто не исправляет это, а может быть я что-то не всё правильно делаю. Конкретнее, я в своём проекте использовал TcxPageControl от DevExpress и TFDConnection, TFDQuery от FireDAC. Теперь я удалил эти элементы из своего проекта, совершенно нигде не использую TcxPageControl и приложение у меня теперь не коннектится напрямую с базой данных. Вручную почистил все #include и #pragma link, но линковщик C++ Builder мне всё равно усердно впихивает cxPageControlRS25.bpl и firedac250.bpl в exe-шник. Если делать Deployment на удалённую машину с динамическими зависимостями от рантаймов, то соответственно туда тоже копируются эти ненужные cxPageControlRS25.bpl и firedac250.bpl. Открыл проект *.cbproj как текст и увидел там эти самые названия. Можно конечно вручную тоже их поудалять, но есть ли какой-то адекватный способ удаления зависимостей от уже ненужных библиотек, что бы вручную не выкосить что-нибудь лишнее? Это я как пример всего две bpl упамянул, а на самом деле там больше, ведь DevExpress и FireDAC там за собой тащат ещё кучу всяких bpl, типа там dxCore.bpl, datadb.bpl и т.п. Вот и происходит такая мусорка в скомпилированном файле и размер соответственно напрасно большой делается. В Visual Studio я с подобным не сталкивался.
    • От x11
      В Deployment есть колонка "Local path" как там отредактировать данные?
      Delphi 10.1
    • От Alesk
      В приложении имеется ~ 160 файлов общим весом ~ 30 мб, которые добавлены в проект через Deployment. Используются они след. образом:
      Tpath.Combine(Tpath.GetDocumentsPath, 'Sample.file'); Проблема в том, что чем больше файлов становится, тем дольше приложение запускается(1 сек заставка, дальше ~ 5 сек черный экран), причем как на слабом железе, так и на мощном. Мб другой способ хранения файлов решит проблему? Если да, то какой?
    • От neohost
      Здравствуйте. В смежной теме нашёл код подключения Res файла с ресурсами
      var Stream: TResourceStream; begin Stream:= TResourceStream.Create(hInstance, 'YouRes', RT_RCDATA); try //Работаем с потоком finally Stream.Free; end; Напрашивается два вопроса
      Что произойдёт при установке программы на андроид устройство? Ресурс останется внутри приложения, или распакуется? Как проиграть mp3/wav файл, упакованный в приложение таким образом без распаковки во внутреннюю память устройства? Интересуюсь с целью понять, можно ли хранить ресурсы внутри программ не распаковывая, как это можно делать в windows программах.
    • От la_coste
      Доброго времени суток, уважаемые форумчане! 
      У меня такой вопросик: можно ли в установочный пакет для android собираемый в delphi xe5 включать свои файлы???
      Заранее спасибо))
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу