[英]How do I detect whether or not the screen on an android device is a touchscreen
我正在編寫不使用dayDream的應用程序Screenserver。
ScreenSaverActivity我覆蓋ontouch:
@Override public boolean onTouch(View v, MotionEvent event) {
Long time = new GregorianCalendar().getTimeInMillis()+ 10*1000;
Intent intentAlarm = new Intent(this, AlarmReciever.class);
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP,time, PendingIntent.getBroadcast(this, 1, intentAlarm, PendingIntent.FLAG_UPDATE_CURRENT));
startService(new Intent(this, MyService.class));
this.onBackPressed(); // turn off app
return false; }
AlrmService.class
public class AlarmReciever extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
// TODO Auto-generated method stub
Intent i = new Intent();
i.setClassName("edu.com.screensaver", "edu.com.screensaver.ScreenSaverActivity");
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i); // turn on again
}
}
我想要更新alrmActivity的時間,所以我添加了MyService.class處理觸摸事件
public class MyService extends Service implements OnTouchListener{
@Override
public boolean onTouch(View v, MotionEvent event) {
Toast.makeText(this, "MyService click", Toast.LENGTH_LONG).show();
if(event.getAction() == MotionEvent.ACTION_DOWN || event.getAction() == MotionEvent.ACTION_UP)
Log.i(TAG, "Action :" + event.getAction() + "\t X :" + event.getRawX() + "\t Y :"+ event.getRawY());
return true;
}
}
永遠不會調用“ MyService click”消息。 當我在10秒后觸摸主要活動時,該應用程序再次打開。
任何解決方案都歡迎。
謝謝
試試這個代碼:
boolean isTouchSupported = getPackageManager()。hasSystemFeature(“ android.hardware.touchscreen”);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.