2015年1月19日月曜日

Touch Screen Testを作った理由

なんでもいいからアプリを作りたい!というようなレベルではなく、購入したタブレットのタッチパネルがおかしくなったのでそれの様子を見るために作ったのが最初です。


どんな症状になったかといえば、私はロック画面をパターンにしているのですが、それの入力がまともに出来なくなってしまいました。

途中まで入力しているとキャンセルされちゃうような感じです。非常にストレスがたまる上、連続して間違うと多分面倒なことになりそうな気がします。

ロックを解除した後も自動で画面が動いたり、画面が勝手に閉じたり、最初は現象がよく解りませんでした。
タッチが受け付けなくなるというよりは何かが勝手に動いているような感じもしてたので原因が見当つかなかったわけです。

常におかしいわけではなく、しばらくすると回復したり、しなかったりと、再現も気まぐれでした。しかしながら、再現性は非常に高く、さらに一部のタッチが出来ないような状態になっている気がしたのでタッチパネルの動作を疑りました。

BOOT ROMに組み込まれているハードウェアチェックプログラムなどを動かしてもこれといって不良箇所ははっきりしませんでした。しかし確実にタッチパネルがおかしいのは認識できつつありました。

ドローアプリか何かインストールすればよいような気もしますが、当時手持ちのアプリもほとんど無く、いっそのこと実際にタッチパネルがどういう風に動かされているのか見る必要があったので、じゃぁアプリでも…。
というところから作り始めました。
まぁ本当に右も左も開発環境が全くわからないので正直苦労しました。
インターネットを見ていても過去の情報と最新の情報が錯綜しているのと、どうも古い情報の検索が上位に上がっているためにとても現状の開発環境の把握が困難でした。
そんなわけで初心に立ち返り、とりあえずちょっと古くてもいいから書籍を足がかりにしました(笑)
android studioがリリースされたからなのか情報は本当に錯綜していました。

そもそもjavaもそんなにガッツリとやったわけでもなく、現在のjavaは過去のものと比べても相当拡張されまくっていて本当に何がなにやら状態。

最近ようやく記述方法にもなれてきた感じがしますが、java特有のなんともいえないセンスがまだ上手くつかめてません。

最初はeclipse + SDKで始めてみました。必要なソースの配置などはまぁまぁ自然で把握をするのはやりやすかったと思います。
記述の仕方も全くわからないながらも、MainActivityでタッチイベントを受けて描画するだけなので
なんとかなりました。

実際にそこまでいくのが大変だっただけで(笑)

そして実際にアプリで確かめてみると、一目瞭然でした。
特定の縦一列が触っても居ないのに見る見るタッチされているという状態になっています。
しかもほぼ上から下まで満遍なく、ランダムに。

今考えればおそらくタッチパネルとマザーボードをつないでいるコネクタか線が接触不良か断線があっただけではないかと思います。
下手すると衝撃を与えれば治ったかも?そのまま壊れちゃいますかね?
ただ、その少し前から、電源が入っている状態で充電できなくなっていました。スリープモードにすると充電されるので、もしかしたら今ままで電源入れたまま充電されていたのは錯覚だったのかも?的な疑心暗鬼にかかりながらも、タッチパネル不良がはっきりしたのでサポートセンターのフォーム入力からはじめ、ある程度放置された後(いろいろなところを見ていると放置されるのは仕様なのだと思います)、無事修理となりました。
結果的に修理に出して外部がちょっと傷ついちゃった気がするのときしむようになった気がするのですが、機能的に満足できるのでやってよかったと思います。

まぁその間にTegra NOTE7を買ったというのはありますが(笑)

このような経緯で作成されたアプリだったりします。
今だとPlay ストアでもそれなりに検索すれば出てくるかな?とは思いますが、ほんと当時タッチスクリーンのテストアプリだとかあるのかな? レベルでしたしね…。

Androidのタッチの仕様が若干マニアックな拡張のされ方をしているので実際にイベントをハンドリングしてみると結構楽しいのでついついハマっている感じがします。

0 件のコメント:

コメントを投稿