Служба не запускается при запуске телефона - PullRequest
0 голосов
/ 15 декабря 2018

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

public class StartBoot extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        if(intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)){
            Intent intent1 = new Intent(context,MyService.class);
            context.startService(intent1);
        }
    }
}

и это мой манифест

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">

        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <receiver android:name=".StartBoot">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED"/>
                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>
        </receiver>

        <service
            android:name=".MyService"
            android:enabled="true"
            android:exported="true"></service>
    </application>

В журнале я прочитал это

W/BroadcastQueue: Permission Denial: receiving Intent { act=android.intent.action.BOOT_COMPLETED flg=0x9000010 (has extras) } to com.google.android.apps.docs/.app.NotificationChannelReceiver requires android.permission.RECEIVE_BOOT_COMPLETED due to sender null (uid 1000)

Заранее благодарю заответы

1 Ответ

0 голосов
/ 21 декабря 2018

Удалить

<category android:name="android.intent.category.DEFAULT"/>

из тега <intent-filter> внутри <receiver>.Эта категория нужна только для <intent-filter> внутри <activity> декларации.Для <receiver> вам требуется только ДЕЙСТВИЕ.

Отправленное вами сообщение об ошибке не имеет ничего общего с вашим приложением, оно жалуется на другое приложение.

...