SecurityException для android .permission.WAKE_LOCK, но я не вижу, где я запрашиваю WAKE_LOCK - PullRequest
0 голосов
/ 16 февраля 2020

Эта ошибка появляется в журнале при отладке моего носимого приложения:

java .lang.SecurityException: ни у пользователя 10090, ни у текущего процесса нет android .permission.WAKE_LOCK.

Я не вижу, где я запрашиваю этот уровень разрешений. Это просто подразумевается, потому что у меня есть активность?

ОБНОВЛЕНИЕ

W/Binder: Caught a RuntimeException from the binder stub implementation.
    java.lang.SecurityException: Neither user 10090 nor current process has android.permission.WAKE_LOCK.
        at android.os.Parcel.createException(Parcel.java:1950)
        at android.os.Parcel.readException(Parcel.java:1918)
        at android.os.Parcel.readException(Parcel.java:1868)
        at android.os.IPowerManager$Stub$Proxy.acquireWakeLock(IPowerManager.java:400)
        at android.os.PowerManager$WakeLock.acquireLocked(PowerManager.java:1507)
        at android.os.PowerManager$WakeLock.acquire(PowerManager.java:1473)
        at com.google.android.wearable.compat.WearableActivityController.postEnterAmbient(WearableActivityController.java:303)
        at com.google.android.wearable.compat.WearableActivityController.access$900(WearableActivityController.java:48)
        at com.google.android.wearable.compat.WearableActivityController$AmbientActivityCallbacksStub.enterAmbient(WearableActivityController.java:909)
        at com.google.android.wearable.ambient.activity.IAmbientActivityCallbacks$Stub.onTransact(IAmbientActivityCallbacks.java:62)
        at android.os.Binder.execTransact(Binder.java:731)
     Caused by: android.os.RemoteException: Remote stack trace:
        at android.app.ContextImpl.enforce(ContextImpl.java:1812)
        at android.app.ContextImpl.enforceCallingOrSelfPermission(ContextImpl.java:1840)
        at com.android.server.power.PowerManagerService$BinderService.acquireWakeLock(PowerManagerService.java:4148)
        at android.os.IPowerManager$Stub.onTransact(IPowerManager.java:67)
        at android.os.Binder.execTransact(Binder.java:731)

ОБНОВЛЕНИЕ В комментариях ниже, это мой файл манифеста. Я добавил WAKE_LOCK, чтобы перестать получать ошибки, но не думаю, что мне это нужно.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.test1">

    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-feature android:name="android.hardware.type.watch" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@android:style/Theme.DeviceDefault">
        <uses-library
            android:name="com.google.android.wearable"
            android:required="true" />


        <meta-data
            android:name="com.google.android.wearable.standalone"
            android:value="false"/>
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name"
            android:launchMode="singleTask">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <service
            android:name=".WearDataLayerListenerService"
            android:enabled="true"
            android:exported="true">
            <intent-filter>
                <action android:name="com.google.android.gms.wearable.DATA_CHANGED" />
                <action android:name="com.google.android.gms.wearable.MESSAGE_RECEIVED" />
                <data android:scheme="wear" android:host="*" android:pathPrefix="/start-activity" />
                <data android:scheme="wear" android:host="*" android:pathPrefix="/message/mobile" />
            </intent-filter>
        </service>

    </application>

</manifest>
...