手机默认启动app"/>
android 手机默认启动app
注册广播
<receiver android:name=".ui.BootBroadcastReceiver"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.QUICKBOOT_POWERON"/><category android:name="android.intent.category.DEFAULT"/></intent-filter></receiver>
广播监听启动固定activity
public class BootBroadcastReceiver extends BroadcastReceiver {private static final String ACTION = "android.intent.action.BOOT_COMPLETED";@Overridepublic void onReceive(Context context, Intent intent) {//屏幕唤醒PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);@SuppressLint("InvalidWakeLockTag")PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.ACQUIRE_CAUSES_WAKEUP| PowerManager.SCREEN_DIM_WAKE_LOCK, "BootBroadcastReceiver");wl.acquire();//屏幕解锁KeyguardManager km = (KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE);KeyguardManager.KeyguardLock kl = km.newKeyguardLock("BootBroadcastReceiver");kl.disableKeyguard();//启动appif (intent.getAction().equals(ACTION)) {Intent intent1 = new Intent(context, LoginActivity.class); // 要启动的Activity//1.如果自启动APP,参数为需要自动启动的应用包名
// Intent intent2 = context.getPackageManager().getLaunchIntentForPackage(packageName);//下面这句话必须加上才能开机自动运行app的界面if (!(context instanceof Activity)) {//如果不是在Activity中显示Activity,必须要设置FLAG_ACTIVITY_NEW_TASK标志intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);}//2.如果自启动Activitycontext.startActivity(intent1);}}
}
切记在AndroidManifest中添加权限
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.DISABLE_KEYGUARD"/>
更多推荐
android 手机默认启动app
发布评论