Android 12 блокирует касания при использовании Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Android 12 блокирует касания при использовании

Сообщение Anonymous »


Я использую , чтобы показать всплывающее окно, которое накладывается на другие приложения, но Android 12 блокирует касания. Согласно документации, он блокирует события касания. как я могу разрешить касания на Android 12?

Вот ссылка на изменения в поведении Android 12 при касании событий. https://developer.android.com/about/ver ... uch-events
import android.app.Service; импортировать android.content.Intent; импортировать android.graphics.PixelFormat; импортировать android.hardware.input.InputManager; импортировать android.os.IBinder; импортировать android.view.Gravity; импортировать android.view.LayoutInflater; импортировать android.view.MotionEvent; импортировать android.view.View; импортировать android.view.WindowManager; публичный класс FloatWidgetService расширяет сервис { частный WindowManager mWindowManager; частный просмотр mFloatingWidget; общественный FloatWidgetService() { } @Override public IBinder onBind (Намерение) { вернуть ноль; } @Override общественная недействительность onCreate() { супер.onCreate(); окончательные параметры WindowManager.LayoutParams; mFloatingWidget = LayoutInflater.from(this).inflate(R.layout.layout_floating_widget, null); mFloatingWidget.setFilterTouchesWhenObscured(true); параметры = новый WindowManager.LayoutParams( WindowManager.LayoutParams.WRAP_CONTENT, WindowManager.LayoutParams.WRAP_CONTENT, WindowManager.LayoutParams.TYPE_PHONE, WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, ПиксельФормат.ТРАНСЛЮЦЕНТ); параметры.гравитация = Гравитация.TOP | Гравитация.СТАРТ; параметры.х = 0; параметры.у = 100; пытаться { mWindowManager = (WindowManager) getSystemService(WINDOW_SERVICE); mWindowManager.addView(mFloatingWidget, params); mFloatingWidget.findViewById(R.id.root_container).setOnTouchListener(new View.OnTouchListener() { частный int InitialX; частный int начальныйY; частный плавающий начальныйTouchX; частное плавающее начальноеTouchY; @Override public boolean onTouch(View v, событие MotionEvent) { переключатель (event.getAction()) { случай MotionEvent.ACTION_DOWN: начальныйX = params.x; начальныйY = params.y; InitialTouchX = event.getRawX(); InitialTouchY = event.getRawY(); вернуть истину; случай MotionEvent.ACTION_UP: int Xdiff = (int) (event.getRawX() - InitialTouchX); int Ydiff = (int) (event.getRawY() - InitialTouchY); if (Xdiff < 10 && Ydiff < 10) { startActivity(new Intent(getApplicationContext(), MainActivity.class)); стопСамость(); } вернуть истину; случай MotionEvent.ACTION_MOVE: params.x = InitialX + (int) (event.getRawX() - InitialTouchX); params.y = InitialY + (int) (event.getRawY() - InitialTouchY); mWindowManager.updateViewLayout(mFloatingWidget, params); вернуть истину; } вернуть ложь; } }); } catch (Исключение е) { е.printStackTrace(); } } @Override общественная недействительность onDestroy () { супер.onDestroy(); если (mFloatingWidget! = null) mWindowManager.removeView(mFloatingWidget); } }
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

" class="inputbox autowidth" />
" />
Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»