WiFiルーターに近づかないと止まらない目覚ましAndroidアプリ

アンドロイド用のアラームアプリAlarm Clock,wake up guaranteed (起きること保証のアラーム時計)は、設定した無線LANの電波強度に近づけることでしか止められない目覚まし時計アプリです。13秒でアプリを説明している動画は以下。

ベッドサイドのAndroid本体を手にしても止めることができなくて、(設定しておいた)家のWiFiルーターの近くに持っていかないと止まらないので、目が覚める可能性は高い?

寝室にルーターがある場合もあるので、無線の電波強度が高い時に止めるのではなく、低く(=ルーターから離れたら)止めるような設定もできます。

複数のWiFiルーターからの電波の強さを使ってGPSのように場所を特定するような技術もありますが、一個でも電波の強さで距離をある程度は測れますね。Androidだと自宅に戻ったことを判定するのに自宅のWiFi接続を確かめるようなアプリもあると思いますが、家の中(あるいは周辺)での電波の強さを使って、目覚ましを止める以外にも何かできることはあるでしょうか。

via This Android Alarm Only Deactivates When You are Out of Bed

ハングマンならぬセップクマン(切腹マン)

千葉県八千代市の私立秀明八千代中学・高校で、英語担当の教師が、授業中に生徒が解答ミスを重ねると、人が首をつっている姿を連想させる絵を黒板に描いていたことが、複数の生徒や卒業生の証言で分かった。同校では08年に校内で生徒が首つり自殺しているが、その後も続いていたという。亡くなった生徒の両親は「こうした指導は問題だ」と憤っている。 (毎日.jp)

外国人教師が授業で使った英単語を当てるゲームHangmanが、人の首を吊るゲームだということで、生徒の自殺と絡めて過剰に反応されていますね。

これはさすがに訴えがナンセンスだと思います。けどアメリカ人やイギリス人にも「文化の違い」だけで片付けてほしくはないな。止める必要はないけど、子供に遊ばせるゲームのテーマとしては、趣味は良くないよね。違う文化では気に障る人もいるかも、という想像力ぐらいは持ってもらってもいいんじゃないかと思います。

さて、同じ発想で英単語じゃなくて日本語の単語を覚えるゲームというのがAndroidアプリにあるようです。「英語で首吊りなら、日本語はこれだ!」と考えたんでしょう。その名も「切腹マン」(Japanese Hangman)

首吊り完成の代わりに、腹を切っていくわけですね。なんという…

メニューは英語・ドイツ語・フランス語に対応し、Androidバージョン1.5以上で動作。無料でAndroid Marketからダウンロードできます。

Android G1で無線LANのアクセスポイントが全く見つからなくなったときの対処

ある時からWiFiが一個も見えなくなり、OS再起動とかしても直らなくなった。

検索した結果、同じ症状の人でWiFiの設定ファイルを強制的に削除することで回復した人がいたので、真似してみたところ直りました。

Windowsでadb.exeを使ってシェルアクセス

> adb shell

$ su

# cd /data/misc/wifi/
# rm wpa_supplicant.conf

で、Androidから再度Wifi Settingsページにアクセスしたら、アクセスポイントがちゃんと検出されるようになりました。

Androidでアプリ作ったけど謎のdebugモードが解消されなくて2日はまったでござる

Eclipse+ADTの開発環境からUSBで送り込むとまったく問題なく動くのに、.apkのパッケージにしてサインしてウェブに置き、そこからダウンロードさせてインストール実行すると「デバッガに接続しています、お待ちください(“waiting for debugger”)というダイアログが出てアプリが起動してくれない、という現象に悩まされていました。

アプリとして配布したけど、デバッガ待ちの状態になってしまう現象の理由として考えられる原因を検索等で調べていくと、以下のようなものがあるようです。

AndroidManifest.xmlで明にデバッグモードを指定している

applicationでandroid:debuggable=”true”と書いてあると、作成されたアプリは常にデバッグモードになるようです。

アプリケーションの中でDebug.waitForDebugger()を呼んでいる

デバッガを待つコードを書いてれば、当然リリースモードでビルドしてもデバッガ待ちに入ります。

アプリケーションの中でその他のデバッグモードで動くクラスを呼んでいる

という書き込みをどっかのMLで見たような気がしますが、呼んだらデバッグモードになっちゃうクラスって何、というのは書いてありませんでした。これはほんとかどうかわかりません。

デバッグ版が不完全にアンインストールされている

USBでつないで実機でデバッグなどしていた場合に、実機のアプリケーション一覧からアンインストールしただけでは、署名関係などが残ってしまいリリース版のインストールがうまくいかないことがあるそうです。インストールできない、とデバッガ待ちで止まってしまう、では症状が違うので厳密には今回のトラブルとは関係ないかもしれませんが。 参考

これらを一個ずつ確認していきますが、特に問題はありません。完全手詰まりでウンウン悩んでは同じ手順を繰り返してましたが、解決方法は意外なところに。

Androidを再起動する

Android実機を再起動したら、同じ.apkを使ってインストールしても、デバッガ待ちにはならなくなりました。

携帯電話だと思うと、ほとんど電源を切ることが無いのですけど、今度から何かがうまくいかなかったときは、パソコンと同様に再起動も試してみようと思います。

逆に、実機でデバッガ実行したいのに動かないときの確認項目は、こちらが詳しいです。