Java 启动/广播接收器重新启动问题

Java 启动/广播接收器重新启动问题,java,android,android-broadcastreceiver,Java,Android,Android Broadcastreceiver,这是一个相当普遍的问题,但我正在失去理智。我想我对这些要求已经很详细了。我想要一个广播接收器在手机重启时做些什么 我的广播接收器(用于引导): 在我的清单的“清单”标签中: <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/> 在我的清单的“应用程序”标签中: <receiver android:name=".receivers.BootReceiver" a

这是一个相当普遍的问题,但我正在失去理智。我想我对这些要求已经很详细了。我想要一个广播接收器在手机重启时做些什么

我的广播接收器(用于引导):

在我的清单的“清单”标签中:

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

在我的清单的“应用程序”标签中:

<receiver
    android:name=".receivers.BootReceiver"
    android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
    <intent-filter>
         <action android:name="android.intent.action.BOOT_COMPLETED"/>
    </intent-filter>
</receiver>

编辑

此外,我还尝试使用ads外壳手动触发重新启动意图。仍然没有成功

编辑2

按照要求,请出示完整的舱单。如果你看到修订版,我只是删除了一些潜在的机密

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

<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

<application
    android:name=".REDACTEDApplication"
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:largeHeap="true"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">

    <activity
        android:name=".ui.activities.SplashActivity"
        android:label="@string/app_name"
        android:screenOrientation="portrait">
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>
    <activity
        android:name=".ui.activities.InitialActivity"
        android:screenOrientation="portrait"/>
    <activity
        android:name=".ui.activities.LoginActivity"
        android:screenOrientation="portrait"/>
    <activity
        android:name=".ui.activities.CreateAccountActivity"
        android:screenOrientation="portrait"/>
    <activity
        android:name=".ui.activities.MainActivity"
        android:screenOrientation="portrait"
        android:theme="@style/AppTheme.NoActionBar">
    </activity>
    <activity
        android:name=".ui.activities.VideoPlayerActivity"
        android:screenOrientation="landscape"/>
    <activity
        android:name=".ui.activities.DisclaimerActivity"
        android:screenOrientation="portrait"/>
    <activity
        android:name=".ui.activities.EPWebViewActivity"
        android:screenOrientation="portrait"/>
    <activity
        android:name=".ui.activities.EscapePlanActivity"
        android:screenOrientation="portrait"/>
    <activity
        android:name=".ui.activities.EscapeInfoActivity"
        android:screenOrientation="portrait"/>
    <activity
        android:name=".ui.activities.EscapeSessionActivity"
        android:screenOrientation="portrait"/>
    <activity
        android:name=".ui.activities.EscapeDetailActivity"
        android:screenOrientation="portrait"/>

    <meta-data
        android:name="io.fabric.ApiKey"
        android:value="REDACTED"/>

    <activity
        android:name=".ui.activities.RemindersActivity"
        android:screenOrientation="portrait">
    </activity>

    <receiver android:name=".receivers.NotificationsReceiver"/>

    <receiver
        android:name=".receivers.BootReceiver"
        android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED"/>
        </intent-filter>
    </receiver>

</application>

编辑3

我尝试添加另一个接收器,但让Android Studio生成它。还是不走运


使用ADB Shell触发在应用程序上完成的引导。那里也没有成功

在清洁、重建和再生APK后,它现在开始工作。我不确定Studio是否缓存了一个旧的APK,或者我是否误解/弄乱了常规构建,但接收器现在正在工作

请确认您已经导入了所有类,并且在menifest write类路径中提到了发布整个清单。@Rod_Algonquin Posted.@jiteshmohite我确信导入了正确的类。我已经用一个更简单的应用程序验证了这一点,该应用程序包含相同的BootReceiver,具有相同的导入。该应用程序确实捕捉到了重新启动的意图。同样,我确信类路径是正确的。自动填充与我在finder视图中看到的并不矛盾。请尝试使用toast进行调试以重新启动,而不是日志
<receiver
        android:name=".receivers.BootReceiver"
        android:permission="android.permission.RECEIVE_BOOT_COMPLETED"
        android:enabled="true"
        android:exported="true">
        <intent-filter android:priority="999">
            <action android:name="android.intent.action.BOOT_COMPLETED"/>
            <action android:name="android.intent.action.REBOOT"/>
            <category android:name="android.intent.category.DEFAULT"/>
            <category android:name="android.intent.category.HOME" />
        </intent-filter>
</receiver>
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.REDACTED.REDACTED">

<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

<application
    android:name=".REDACTEDApplication"
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:largeHeap="true"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">

    <activity
        android:name=".ui.activities.SplashActivity"
        android:label="@string/app_name"
        android:screenOrientation="portrait">
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>
    <activity
        android:name=".ui.activities.InitialActivity"
        android:screenOrientation="portrait"/>
    <activity
        android:name=".ui.activities.LoginActivity"
        android:screenOrientation="portrait"/>
    <activity
        android:name=".ui.activities.CreateAccountActivity"
        android:screenOrientation="portrait"/>
    <activity
        android:name=".ui.activities.MainActivity"
        android:screenOrientation="portrait"
        android:theme="@style/AppTheme.NoActionBar">
    </activity>
    <activity
        android:name=".ui.activities.VideoPlayerActivity"
        android:screenOrientation="landscape"/>
    <activity
        android:name=".ui.activities.DisclaimerActivity"
        android:screenOrientation="portrait"/>
    <activity
        android:name=".ui.activities.EPWebViewActivity"
        android:screenOrientation="portrait"/>
    <activity
        android:name=".ui.activities.EscapePlanActivity"
        android:screenOrientation="portrait"/>
    <activity
        android:name=".ui.activities.EscapeInfoActivity"
        android:screenOrientation="portrait"/>
    <activity
        android:name=".ui.activities.EscapeSessionActivity"
        android:screenOrientation="portrait"/>
    <activity
        android:name=".ui.activities.EscapeDetailActivity"
        android:screenOrientation="portrait"/>

    <meta-data
        android:name="io.fabric.ApiKey"
        android:value="REDACTED"/>

    <activity
        android:name=".ui.activities.RemindersActivity"
        android:screenOrientation="portrait">
    </activity>

    <receiver android:name=".receivers.NotificationsReceiver"/>

    <receiver
        android:name=".receivers.BootReceiver"
        android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED"/>
        </intent-filter>
    </receiver>

</application>