2011-07-15 35 views
7

public boolean onTouchEvent(MotionEvent event)'u kullanarak bir Etkinlik'ten yapabileceğiniz gibi dokunma olaylarını nasıl alabilirim? Bir hizmette geçersiz kılmak için bir onTouchEvent yöntemi yoktur, bunu yapmak için nasıl gidebilirim? Doğrudan bir yol veya güvenilir bir çalışma var mı?Bir hizmette dokunma olayları (koordinatlar, MotionEvents, vb.) Alma

Fikrim, kullanıcının belirli bir jest yapması için arka planda dinleyen bir hizmet oluşturmak, ardından bu kullanıcı doğru hareketi yaptığında bir şey yapmaktır. Teşekkür ederim!

DÜZENLEME: Bu soru, bu question cevabı için hazırlanmıştır.

+0

% 100 bilmiyorum, bu yüzden cevapları vermeyeceğim, fakat bir Hizmet fikrinin hiçbir insan etkileşimi olmadığı. Ayrıca, telefonu kullanacak olan 10 kişinin 9'unun 9'unun bir uygulamanın dışındaki hareketleri yapamayacağını düşünürüm. Bu nedenle, herhangi bir çözüm genel kullanıcı deneyimini yavaşlatabilecek bir işleyici oluşturabilir. – DeeV

+0

Şu iki uygulamaya göz atın https://market.android.com/details?id=mobi.conduction.swipepad.android&feature=search_result ve https://market.android.com/details?id=com.mobilemerit .wavelauncher ve özellik = search_result. Bunu nasıl yapacağımı anlamaya çalışıyorum. – Brian

+0

O zaman birilerinin buna cevap vereceğini umuyorum çünkü ben de bilmek isterdim. Her ne kadar, ben * düşünüyorum * bunlar telefonun masaüstünde bulunanlar gibi özel widget'lar sadece her zaman zirvede. Doğru hatırlarsam, Dalga Başlatıcı ekran dışı başlar ve onu yukarı doğru sürüklemeniz gerekir. Alttaki 20 piksel, dokunulduğunu kaydeden widget'ın kenarıydı. Görünüşünden, kaydırma yastığı aynı şekilde. Bir hizmet kullanmayın. – DeeV

cevap

0

Bir 0x0 görünümü oluşturabilir ve Servis penceresine her zaman en üstte bulunan bir sistem diyaloğu olarak ekleyebilirsiniz.

'WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH' iznini kullanarak olayları dinleyebilirsiniz. Ne yazık ki, sadece ilk dokunma olayı elde edebilirsiniz ve etkinliği azaltmak için etkinliğe geçemezsiniz. Bunu gerçekten yapamayacağına sevindim; Kullanıcının kimlik bilgilerini almak için kötü amaçlı yazılımın nasıl kullanılacağını tahmin edebilirsiniz.

+0

Teşekkürler ama soruma başvurursanız, bunun nasıl işleyeceğini gösteren bir soruya bir bağlantım var. En büyük meselem aslında hareket eden dokunma hareketlerini elde etmektir. Wave Launcher ve SwipePad gibi uygulamalar bunu yapabilir, ancak nasıl yapacağımı bilmiyorum. – Brian

İlgili konular