簡體   English   中英

如何從Android刪除鎖屏?

[英]How to remove lock screen from Android?

我正在創建一個啟動器應用程序,我想用一個自定義的應用程序替換鎖屏。 如何刪除當前的鎖定屏幕或以某種方式使之鎖定,以便在按電源按鈕開/關時出現我的自定義鎖定屏幕?

這是我一直想做的。 我試圖創建一個廣播接收器,以確定屏幕是否為OFF / ON / Boot Completed。

public class LockScreenReceiver extends BroadcastReceiver {

    private Intent mIntent;
    public static boolean isScreenOn = true;

    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) {
            isScreenOn = false;
            mIntent = new Intent(context, LockScreenAppActivity.class);
            mIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(mIntent);
        } else if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) {
            isScreenOn = true;
            mIntent = new Intent(context, LockScreenAppActivity.class);
            mIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        } else if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) {
            mIntent = new Intent(context, LockScreenAppActivity.class);
            mIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(mIntent);
        }
    }
}

我還創建了一個服務

public class MyService extends Service {
    BroadcastReceiver mReceiver;

    @Override
    public IBinder onBind(Intent intent) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public void onCreate() {
        KeyguardManager.KeyguardLock k1;
        KeyguardManager km = (KeyguardManager) getSystemService(KEYGUARD_SERVICE);
        k1 = km.newKeyguardLock("IN");
        k1.disableKeyguard();
        IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_ON);
        filter.addAction(Intent.ACTION_SCREEN_OFF);
        mReceiver = new LockScreenReceiver();
        registerReceiver(mReceiver, filter);
        super.onCreate();
    }

    @Override
    public void onStart(Intent intent, int startId) {
        // TODO Auto-generated method stub
        super.onStart(intent, startId);
    }

    @Override
    public void onDestroy() {
        unregisterReceiver(mReceiver);
        super.onDestroy();
    }
}

我遇到的問題是這無法正常工作。 當我按下電源按鈕時,將顯示Android解鎖屏幕。 然后到我的。 這是我應該通過root禁用鎖定屏幕的情況之一,這樣只有我的才會出現嗎?

事實證明,除了權限之外,我擁有所有正確的組件。 添加以下權限后,一切便開始起作用。

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

感謝Alka Jadav的參考鏈接。 干杯! 希望這對其他人有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM