Képernyő állapotának lekérdezése
Kémprogramokhoz elengedhetetlen a láthatatlanság, igaz hogy fejlődik az android és már egyre nehezebb bármit is ellopni a júzer telefonjáról, de a felhasználói szokások még az ellopható dolgok közé tartoznak, mint például a telefon helyzete, ahol árulkodó lehet a bekapcsolt gps működését jelző ikon az állapot sávban. Az ilyent érdemes kikapcsolt képernyőnél csinálni, és ehhez jól jön ha le tudjuk kérdezni a képernyő ki- vagy bekapcsolt állapotát
public boolean isScreenOn(Context context) { if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT_WATCH) { DisplayManager dm = (DisplayManager) context.getSystemService(Context.DISPLAY_SERVICE); boolean screenOn = false; for (Display display : dm.getDisplays()) { if (display.getState() != Display.STATE_OFF) { screenOn = true; } } return screenOn; } else { PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE); //noinspection deprecation return pm.isScreenOn(); } }
Beállíthatunk egy filtert is, hogy fusson le egy procedúra, ha a telefon képernyőjét ki vagy bekapcsolták
brr= new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { if (mp1 != null){ mp1.release(); mp1= MediaPlayer.create(getApplicationContext(), R.raw.sound7); } mp1.start(); Log.i("TTAG","je"); } }; IntentFilter filter = new IntentFilter(); filter.addAction(Intent.ACTION_SCREEN_OFF); filter.addAction(Intent.ACTION_SCREEN_ON); registerReceiver(brr, filter);
Ez utóbbinál persze kell lenni egy hang fájlnak a raw mappában, és akkor hanggal jelez, ha ki vagy bekapcsolták a telefont