Thanks to Niko i was able to do what i want. On api >= 15 , i used reflection (using Niko example) to get the field: mListenerInfo, then i used reflection again to get the field mOnTouchListener. now if it's null it means there is no touch listener, otherwise it has. this is a code example (without try catch):
Field field_mListenerInfo = null;
Object originalListener = null;
Object myListenerInfo = null;
Field field_mOnTouchListener = null;
View viewForField = new View(activity); //needed just to get field name
field_mListenerInfo = viewForField.getClass().getDeclaredField("mListenerInfo");
field_mListenerInfo.setAccessible(true);
originalListener = field_mOnTouchListener.get(myListenerInfo );
myListenerInfo = field_mListenerInfo.get(view);
field_mOnTouchListener = myListenerInfo.getClass().getDeclaredField("mOnTouchListener");
field_mOnTouchListener.setAccessible(true);
now if originalListener is null it means there is no touchListner. else, you can actually use this Listener - for example to concat few listeners. If there are no Listeners at all so mListenerInfo will be null. of course you should pack this code with try catch, otherwise it will break if any of your fields is null.