Я пытаюсь отображать оверлей всякий раз, когда смартфон разблокирован.
Есть два основных файла 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)
}..............
Итак, я хочу, чтобы упоминания об улучшении этого приложения. Спасибо