Android: приложение не получает загрузку завершено - PullRequest
0 голосов
/ 18 ноября 2018

Я работаю над относительно простым приложением, в котором оно записывает сообщение при вызове намерения. Однако приложение никогда не получало никаких намерений, явных (<package>.ACTION_SILENT_START или неявных android.intent.action.BOOT_COMPLETED)

AndroidManifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.<snip>.ade.kaiga">

    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission>

    <application android:allowBackup="true"
        android:label="@string/app_name"
        android:icon="@mipmap/icon"
        android:roundIcon="@mipmap/icon_circle"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">

        <!-- OnBoot Receiver -->
        <receiver
            android:name=".BootReceiver"
            android:enabled="true"
            android:exported="true"
            android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
                <action android:name="android.intent.action.MY_PACKAGE_PREPLACED" />
                <action android:name="com.<snip>.ade.kaiga.ACTION_SILENT_START" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </receiver> 
    </application>
</manifest>

com.<snip>.ade.kaiga.BootReceiver:

package com.<snip>.ade.kaiga;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;

public class BootReceiver extends BroadcastReceiver {

    private static final String TAG = "KaigaBootReceiver";

    @Override
    public void onReceive(Context context, Intent intent) {
            Log.d(TAG, "BOOOTTOTOTOTOTOTOTOT");
            BootService.enqueueWork(context, new Intent());
    }
}

1 Ответ

0 голосов
/ 18 ноября 2018

У вас есть разрешение RECEIVE_BOOT_COMPLETED в двух местах.Вы хотите это в элементе использования-разрешения.Но я не думаю, что вы хотите это в атрибуте разрешения в получателе:

android:permission="android.permission.RECEIVE_BOOT_COMPLETED"

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

https://developer.android.com/guide/topics/manifest/receiver-element#prmsn

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...