开机或解锁屏幕时进入APP,以及屏幕锁屏

来源:互联网 发布:sql二进制数据 计算符 编辑:程序博客网 时间:2024/06/05 07:08
//开机或解锁屏幕时进入APP
public class BootCompleteReceive extends BroadcastReceiver {    @Override    public void onReceive(Context context, Intent intent) {        //屏幕唤醒       PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);        PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.ACQUIRE_CAUSES_WAKEUP                | PowerManager.SCREEN_DIM_WAKE_LOCK, "StartupReceiver");        wl.acquire();        //屏幕解锁        KeyguardManager km = (KeyguardManager)context.getSystemService(Context.KEYGUARD_SERVICE);        KeyguardManager.KeyguardLock K1=km.newKeyguardLock("
StartupReceiver
");
KeyguardManager.KeyguardLock K1=km.newKeyguardLock("");
// KeyguardManager.KeyguardLock K1=km.newKeyguardLock("unlock"); K1.disableKeyguard();

  Intent intent1 = new Intent(context, MainActivity.class);  intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);    context.startActivity(intent1);
 /* //开机启动 Intent intent1=new Intent(context,Grant.class); Toast.makeText(context,"启动成功",Toast.LENGTH_LONG).show(); intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);//// intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);FLAG_ACTIVITY_CLEAR_TOP context.startActivity(intent1);
    Intent intent1 = new Intent(context, MainActivity.class);     intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);    context.startActivity(intent1);



 */ }}

//锁屏
public class ScreenReceive  extends DeviceAdminReceiver{// 这个里面什么都不用写}在MainActivity.java中写入
private DevicePolicyManager dpm;private ComponentName cpn;
 
final PowerManager pm= (PowerManager)getSystemService(Context.POWER_SERVICE);final PowerManager.WakeLock wakeLock = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK,"TAG");wakeLock.acquire();dpm = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);cpn = new ComponentName(this, MyReceive.class);final boolean  activity = dpm.isAdminActive(cpn);
if (!activity) {    Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);    intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, cpn);    intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION, "one key lock screen need to activity");    startActivityForResult(intent, 0);    dpm.lockNow();    //android.os.Process.killProcess(android.os.Process.myPid());    wakeLock.release();}if (activity) {    dpm.lockNow();    wakeLock.release();    android.os.Process.killProcess(android.os.Process.myPid());}





并在manifest.xml中加入
 <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /><uses-permission android:name="android.permission.DISABLE_KEYGUARD" />//添加禁用权限"@mipmap/ic_launcher" <uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />

<receiver android:name=".BootCompleteReceive">
<meta-data android:name="android.app.device_admin" android:resource="@layout/device_admin_sample"/> <intent-filter> <action android:name="android.intent.action.USER_PRESE"/> <action android:name="android.intent.action.USER_PRESENT"/> <action android:name="android.app.action.DEVICE_ADMIN_ENABLED"/>//这个是锁屏用的 </intent-filter></receiver>

 
阅读全文
0 0
原创粉丝点击