スクリーン上でタップしたときに呼ばれるonCommandメソッドの特性を整理しました。
取得できるイベント
2種類あります。
- スクリーン上の何も無い場所をタップ
- スクリーン上でAppIcon移動
なお、AppWidget作成やショートカット作成ではコールされませんでした。移動時はAppIconと同じように呼ばれます。
引数について
onCommand(String action, int x, int y, int z, Bundle extras, boolean resultRequested)
第1引数
action とありますが、「取得できるイベント」で紹介したように二種類取れます。
スクリーン上の何も無い場所をタップ は android.wallpaper.tap
スクリーン上でAppIcon移動 は android.home.drop
第2, 3, 4引数
コールされたときの座標が渡されます。ちなみにタップ移動した場合は、移動後の値となります。
値は1スクリーン内の数値が返って来るので、maxは画面サイズとなります。ただし、notificationとscreen下のバーがあるためそれらを考慮した値となります。*1
また、onOffsetsChangedがコールされる*2場合はコールされません。
第5引数
extrasですが、特に何も渡ってきません。どんな時に渡ってくるのかな?
第6引数
resultRequestedが常にfalseなのは何故...よく分からないです。
その他の特性
一回のタップで一回だけコールされます。
縦のタップ移動はコールされます、斜めはコールされません。横はonOffsetsChangedがコールされるため呼ばれません。
タップ移動は離した時にコールされます、AppIcon移動は置いた時にコールされます。