android - Call onTouchEvent() programmatically in Tracker class -
i using mobile vision barcode reader code example code here want trigger ontouchevent()
whenever first barcode detect touchevent should trigger in onnewitem()
of barcodegraphictracker
. used toucheventexplicitlycall()
purpose. got following exception
com.google.android.gms.samples.vision.barcodereader e/androidruntime: fatal exception: main process: com.google.android.gms.samples.vision.barcodereader, pid: 28006 java.lang.nullpointerexception: attempt invoke virtual method 'boolean android.view.window.superdispatchtouchevent(android.view.motionevent)' on null object reference @ android.app.activity.dispatchtouchevent(activity.java:2944) @ com.google.android.gms.samples.vision.barcodereader.barcodegraphictracker$1.run(barcodegraphictracker.java:120) @ android.os.handler.handlecallback(handler.java:739) @ android.os.handler.dispatchmessage(handler.java:95) @ android.os.looper.loop(looper.java:145) @ android.app.activitythread.main(activitythread.java:6837) @ java.lang.reflect.method.invoke(native method) @ java.lang.reflect.method.invoke(method.java:372) @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:1404) @ com.android.internal.os.zygoteinit.main(zygoteinit.java:1199)
here code
class barcodegraphictracker extends tracker<barcode> { private graphicoverlay<barcodegraphic> moverlay; private barcodegraphic mgraphic; barcodegraphictracker(graphicoverlay<barcodegraphic> overlay, barcodegraphic graphic) { moverlay = overlay; mgraphic = graphic; } /** * start tracking detected item instance within item overlay. */ @override public void onnewitem(int id, barcode item) { mgraphic.setid(id); toucheventexplicitlycall(); } void toucheventexplicitlycall() { handler handler = new handler(looper.getmainlooper()); handler.post(new runnable() { @override public void run() { long downtime = systemclock.uptimemillis(); long eventtime = systemclock.uptimemillis() + 1000; float x = 0.0f; float y = 0.0f; int metastate = 0; motionevent motionevent = motionevent.obtain( downtime, eventtime, motionevent.action_down, x, y, metastate ); barcodecaptureactivity view=new barcodecaptureactivity(); view.dispatchtouchevent(motionevent); } }); }
}
Comments
Post a Comment