Скрин-логгер
-
KvaKoZyaBBrr
- Сообщения: 2
- Зарегистрирован: 11 апр 2015, 22:04
Скрин-логгер
Здравствуйте! Только начал изучать разработку под Андроид, а всё потому что висит курсовая. Поэтому прошу помочь. Нужно создать сервис, который бы записывал в лог, координаты нажатия на экран. У меня вопрос возник лишь в том, возможно ли это? Просто я думаю что служба не может перехватить нажатия с других приложений, или может? Я как бы изучать то изучаю, а вот можно ли вообще так сделать? Буду раз любому совету.Заранее благодарен.
Re: Скрин-логгер
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.
-
KvaKoZyaBBrr
- Сообщения: 2
- Зарегистрирован: 11 апр 2015, 22:04
Re: Скрин-логгер
Всё получилось! спасибо! Но вот проблема появилась: при сворачивании приложения, клики регистрируются, но вот координаты не выдаются, то есть х = 0 и у = 0, а в приложении координаты ненулевые. Можно ли как-нибудь получать координаты за пределами приложения?doter.ua писал(а):http://jhshi.me/2014/11/09/monitor-scre ... n-android/
MyService.java
Код: Выделить всё
WindowManager mWindowManager = null;
LinearLayout mDummyView = null;
Context mContext = null;
BufferedWriter bw;
public void onCreate() {
Log.d(LOG_TAG, "onCreate");
mWindowManager =(( WindowManager) getSystemService(Context.WINDOW_SERVICE));
mDummyView = new LinearLayout(this);
WindowManager.LayoutParams params = new WindowManager.LayoutParams(1, WindowManager.LayoutParams.MATCH_PARENT);
mDummyView.setLayoutParams(params);
mDummyView.setOnTouchListener(this);
super.onCreate();
}
public int onStartCommand(Intent intent, int flags, int startId) {
Log.d(LOG_TAG, "onStartCommand");
someTask();
return super.onStartCommand(intent, flags, startId);
}
public boolean onTouch(View v, MotionEvent event) {
Log.d(LOG_TAG, "Touch event: " + event.toString());
//Вот тут координаты в приложении ненулевые, а при сворачивании - нулевые
return false;
}
void someTask() {
WindowManager.LayoutParams params = new WindowManager.LayoutParams(
1, /* width */
1, /* height */
WindowManager.LayoutParams.TYPE_PHONE,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE |
WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL |
WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH,
PixelFormat.TRANSPARENT
);
params.gravity = Gravity.LEFT | Gravity.TOP;
mWindowManager.addView(mDummyView, params);
}