Я наткнулся на проблему, которую я просто не могу исправить.Исключение для службы Android - разрешение отказано в отсутствии разрешения в сети Интернет
2 сценария, в первый раз пользователь нажимает кнопку, которая запускает метод в MainActivity
, чтобы сделать веб-запрос. Это не проблема.
Во втором сценарии я хочу сделать этот запрос автоматически в службе, запущенной в фоновом режиме, как только код перемещается в Сервис, он делает исключение для разрешения.
Caused by: java.lang.SecurityException: Permission denied (missing INTERNET permission?)
Я могу запустить службу прекрасно, но если я двигаю все сетевые запросы на службу, то я с проблемами разрешения.
У меня уже есть <uses-permission android:name="android.permission.INTERNET"/>
и <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
в моем AndroidManifest.xml
файле.
Я также выполняю проверку разрешений в реальном времени (SDK 23+) в моей главной службе перед запуском службы, но это, похоже, не влияет на разрешения, которые получает служба.
Любые идеи?
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="domain">
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<service
android:name="domain.RemoteCommunicationService"
android:isolatedProcess="true"
android:exported="true">
</service>
<receiver android:name="domain.RemoteServiceRestartReceiver"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="domain.RemoteServiceRestart"></action>
</intent-filter>
</receiver>
<receiver android:name="domain.RemoteCommunicationService$RemoteCommunicationReceiver"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="domain.RemoteCommunication.ToggleLight"></action>
</intent-filter>
</receiver>
</application>
показать свой файл манифеста –
@Jonas D разместим ваш манифест и то, что ваш SDK, если его 23 или выше, вам может понадобиться во время выполнения завивки –
Добавлен файл манифеста - проблема возникает только в RemoteCommuincationService, а не в моем Main Мероприятия. –