1、监控RECEIVE_BOOT_COMPLETED,即开机自启动事件AndroidManifest.xml 设置开机启动权限以及相应的receiver
2、监控sd卡的mount事件,开机的时候一般都会扫描sd卡,监控sd卡事件也有类似开机启动效果,特别app安装在sd卡的情况下有些os是抓取不到RECEIVE_BOOT_COMPLETED所以设置android:installLocation=“internalOnly”,限制app的安装位置,使其能抓取到RECEIVE_BOOT_COMPLETED
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:installLocation="internalOnly"
package="com.arvin.playerautorun">
<application
android:name=".MyApplication"
android:allowBackup="true"
android:icon="@mipmap/logo"
tools:replace="android:icon"
android:label="@string/app_name"
android:requestLegacyExternalStorage="true"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.PlayerAutorun" >
<activity android:name=".MainActivity"
android:launchMode="singleTask"
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver android:name=".AppBroadcastReceiver">
<intent-filter android:priority="1000">
<!--开机自动启动-->
<action android:name="android.intent.action.BOOT_COMPLETED"/>
<!--<!– 自动关机 –>-->
<action android:name="android.intent.action.ACTION_REQUEST_SHUTDOWN"/>
<!-- 监听sd卡挂载-->
<action android:name="android.intent.action.MEDIA_MOUNTED"/>
<action android:name="android.intent.action.MEDIA_UNMOUNTED"/>
<data android:scheme="file">
</data>
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.HOME"/>
</intent-filter>
</receiver>
</application>
</manifest>