Диалог разрешения при установке приложения для Android - PullRequest
0 голосов
/ 23 мая 2018

Я разрабатываю игру для Android с использованием Unity3d.Когда я генерирую файл .apk с помощью Unity, а затем устанавливаю приложение на свой телефон, в диалоговом окне установки он говорит, что «приложение не требует каких-либо специальных разрешений».Тем не менее, в моем Android-манифесте у меня есть разрешения на доступ к Интернету и местоположению.

Насколько я понимаю, если targetSdk> 23, разрешение на доступ в Интернет воспринимается как нормальное разрешение и поэтому не вызывает диалоговое окно разрешения.Однако, как только я запускаю приложение, оно запрашивает доступ к местоположению устройства.Это все нормально для меня, и я полагаю, что так оно и должно работать.

Мой вопрос таков: почему в диалоговом окне установки указано, что приложение не требует каких-либо специальных разрешений?Не должно ли, по крайней мере, разрешение Location быть указано в диалоговом окне установки?

Мой манифест выглядит так:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.DiogoMelo.Exergame" android:versionName="1.0" android:versionCode="1" android:installLocation="preferExternal">
  <application android:icon="@drawable/app_icon" android:label="@string/app_name" android:isGame="true" android:banner="@drawable/app_banner">
    <activity android:name="com.yusufolokoba.pedometer.PedometerActivity" android:label="@string/app_name" android:screenOrientation="sensorLandscape" android:launchMode="singleTask" android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|fontScale|layoutDirection|density">
      <meta-data android:name="unityplayer.UnityActivity" android:value="true" />
      <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
        <category android:name="android.intent.category.LEANBACK_LAUNCHER" />
      </intent-filter>
    </activity>
    <meta-data android:name="unity.build-id" android:value="fe7aacd9-9aed-4446-a3d2-45a1f1474bda" />
    <meta-data android:name="unity.splash-mode" android:value="0" />
    <meta-data android:name="unity.splash-enable" android:value="True" />
    <meta-data android:name="android.max_aspect" android:value="2.1" />
  </application>
  <uses-sdk android:minSdkVersion="16" android:targetSdkVersion="25" />
  <uses-feature android:glEsVersion="0x00020000" />
  <uses-permission android:name="android.permission.INTERNET" />
  <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
  <uses-feature android:name="android.hardware.location.gps" android:required="false" />
  <uses-feature android:name="android.hardware.location" android:required="false" />
  <uses-feature android:name="android.hardware.touchscreen" android:required="false" />
  <uses-feature android:name="android.hardware.touchscreen.multitouch" android:required="false" />
  <uses-feature android:name="android.hardware.touchscreen.multitouch.distinct" android:required="false" />
</manifest>

Ответы [ 2 ]

0 голосов
/ 24 мая 2018

У меня наконец-то появилось время для тестирования на телефоне под управлением Android 5.1, и в диалоговом окне установки отображаются необходимые разрешения.Так что проблем нет, все зависит только от работающей версии Android.

0 голосов
/ 23 мая 2018

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

...