Problem: Sometimes there's a need to do a particular work again and again on the mobile device or there's a need to do a particular operation on friend's device who is sitting remotely or need to teach someone on how to operate a particular app. For similar situations there is no standalone mobile functionality/application which can record and then playback the same key/touch events, there are PC software to do it (very limited though) but no standalone mobile software which can do it.
Solution: The idea is to record the key press events/touch events (x-y co-ordinate)/motion events/sounds from speaker, or from any sensor on the mobile while doing any operation on the mobile (say launching camera app and doing some settings) and then save the recorded file in particular format (say .rec file) and playback the recorded file as and when needed. When played back the recorded file events will be triggered automatically with the same delay (when it was originally recorded) to redo the same operation. Recording of the events can be done using Queue like abstract data types (ADT) which follow first in first out (FIFO) principle so that once played back the events will be triggered in the sequential manner with first event triggered first followed by others in order. Once the recording of the events is done and saved, the recorded file can be transferred to other mobiles to do that particular operation automatically on that device. The recorded file will also store the mobile's properties like screen size, resolution, OS version, etc. to maintain the cross mobile compatibility so that one can record events on say device1 then it can be played on device2 seamlessly with events calibrated automatically according to device2. Also to maintain the cross device compatibility one can record the API calls and/or Interrupt calls on queue like ADT but that will work only if OS is same across the devices on which the operation is going to be performed. With this functionality in place there won't be any need of Computer based software to simulate the key press events, touch events, etc.
How is it different from other existing methods-
- None of the tools takes events from special sensors (like accelerometer/tilt/microphone, etc.) attached to the phone but we are proposing that as well. A use case for this goes like this – Say a game developer company wants to give a demo of their new car racing game on iPhone4 in which car turns when device is tilted (using tilt/accelerometer sensor), they can record it on one of the devices and then distribute that recorded file for a demo and show off the game capabilities.
- Also none of the utilities take touch events but we are planning to support that as well. For example on a complete touch screen phone (say iPhone) user want to take a snap of a place with all the different setting available in the camera app, then he can record all those events (say clicking on x1y1; x2y2; x3y3; ..coordinates and so on) and replay those events at different places he visit. That way he can take snaps of all the places in all configurations available on the phone very easily.
- All recording and playback should be done on device itself without requiring any PC side tool or external h/w.
- No utility takes the hardware and software capabilities of the device into account hence there’s a need of manual porting from device1 to device2 but what we are proposing is to take h/w, s/w capabilities into account and run one recorded file from device1 onto device2 seamlessly.