как показать оверлейное изображение при разблокированном смартфоне в Android - PullRequest
0 голосов
/ 04 августа 2020

Я пытаюсь отображать оверлей всякий раз, когда смартфон разблокирован.

Есть два основных файла kotlin, MainActivity и MainView. MainActivity работает для настройки содержимого MainView, MainView работает для отображения содержимого с помощью наложения.

Я пробовал использовать его с помощью службы переднего плана с приемником разблокировки. Это сработало, но отображается как кадр приложения, а не просто наложенное изображение, поэтому время анимации перетаскивания (около 1 секунды c) для отображения изображения.

UnlockReiciver.kt

class UnlockReceiver: BroadcastReceiver() {
override fun onReceive(context: Context?, intent: Intent?) {

    if (intent!!.getAction().equals(Intent.ACTION_USER_PRESENT)) {
        var myIntent = Intent(context, MainView::class.java)
        myIntent?.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
        context?.startActivity(myIntent)
    }
}

}

ForegroundService.kt

..........
private fun registerForScreenUnlockReceiver() {
    val screenStateFilter = IntentFilter()
    screenStateFilter.addAction(Intent.ACTION_USER_PRESENT)
    registerReceiver(unlockReceiver, screenStateFilter)
}..........

Я хочу просто отображать полноэкранное изображение по наложению, а не по фрейму приложения.

Мое предположение показывало наложение от foregroundService с unlockReceiver. поэтому я установил файл kotlin в myIntent (MainView.kt), не задав setContentview (), и просто заставил его отображать оверлей, он не работает.

MainView.kt

class MainView:AppCompatActivity() {
private val realm= Realm.getDefaultInstance()
private var showflag:Int=realm.where<Flag>().findFirst()!!.flag

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.main_view)
    viewLayout.setOnTouchListener{ _: View, event: MotionEvent ->
        when(event.action){
            MotionEvent.ACTION_DOWN->finishAffinity()
        }
        true
    }

    showMethod(showflag)
}..............

Итак, я хочу, чтобы упоминания об улучшении этого приложения. Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...