GALAXY SIIの充電完了通知音がムカツク

ケータイの充電が終わった、なんてのを、音で知らされて、うれしい人なんているのか?
と思ってググると、けっこう「充電完了通知音が欲しい」という人は、いるようなんで、驚きますけど…。なんでそんなこと通知してほしいのかね?生活がケータイオリエンテッドになっていて、充電完了したらおでかけしよう!とか、思うんですかね???理解できないわー。

まあ、ともかく、普通、寝る前には充電すると思いますけど、特にスマホではなおさらそうだろうと思いますけど、
私は、うつらうつらしたとたん、GALAXY SIIに「ピギョ!ピギョ!」という異音充電完了通知音で叩き起こされたことが、何度もある。心底むかついてあやうくひっつかんでぶん投げそうになった。

標準でこれを消す方法ぐらい用意しておけよ!

GALAXY SIIのmicroUSBコネクタ

半年ほどGALAXY SIIを使っているが、microUSBコネクタの接触が、いまいち、悪くなってきた。
microUSBケーブルとの相性(コネクタの接触の相性)がある感じ。

  • 症状その1

    充電器で充電しているだけでも、通信用の接続と誤認し「USBモードを有効にするとBluetoothが無効になります。続行しますか?」というダイアログが出ることがある。

  • 症状その2
    充電中マークが点いているのに、電池容量は減っていくという不条理な状態になることがあり、非常にムカツク。

硬いケーブルだと、ケーブルをさわったりした拍子にコネクタに力が伝わりやすく、接触不良になりやすい。クルマで充電してるような時は常に振動が加わるのでやっぱり接触不良になることが多い。
この接触がイマイチで硬めのケーブルというのが、Samsung純正の付属品おっと試供品というexcuseでしたねのケーブルもそうだったりするのでなおさら腹が立つ。

そこで、何本かmicroUSBケーブルを試した。

いまのところ、ほぼ問題無く使えているのがこのミヤビックスの RCUMBC です。巻き取り式なので柔らかい平ケーブルが使われており、ということはケーブルに加わった力がコネクタに伝わりにくく、つまり振動に強い。クルマで充電している時にも比較的安心。
いまのところ、2本買って、2本とも問題無い。なお、1本目はおそらく2008~2009年ごろに買い、2本目は2012/01に買った。


実は2本目のミヤビックス RCUMBC を買う前に、「巻き取りケーブルで、さらに充電・通信切り替えスイッチが付いてたら、充電器使用時に通信と誤認されることもないだろうから完璧なんじゃね?」と思い、このRIXのケーブルを買ってみたのだが、残念ながらこれは(接触不良を起こした)GALAXY SIIのコネクタとは相性が良くないようで、挿しても充電がはじまらないことすらある接触の悪さだった。残念。



Apple iPhoneのDockコネクタはデカいけど、まだあっちのほうが信頼性がある感じだなあ…。
EUはなんで充電端子仕様をmicroUSBなんかに統一したんだよ!ヽ(`Д´)ノ

◆ ◆ ◆ ◆ ◆

後記。その後、ドコモショップに持っていってこの症状を訴えたら、確認後、あっさりGALAXY SII本体をその場で無料で新品交換してくれた(本体とリアパネルのみ。電池はそのまま)。
メモリのバックアップとかそういった作業は一切断ったら、かわりにモバイラーズチェック500円くれた。
同様の接触不良で困ってる場合、保証のあるうちに、時間を作ってドコモショップに持っていった方がいいと思います。
交換後は上記の全く使えなかったRIXのケーブルも使えています。

Androidアプリ「GPS定期測位」を作ってみた

→ Galaxy SII/Android/Google Latitudeの不満点

といった不満があったので、Androidアプリ作成の練習も兼ねて「一定時間おきにGPS測位するだけ」のAndroidアプリを作ってみた。

無料なので、もし同様の不満を感じているかたがいらしたらどうぞ。
個人的にはけっこう満足。
Google Latitudeで、そんなにバッテリも使わず、1時間に1回程度は、むちゃくちゃな誤差もなく、位置履歴が採れるようになったので。

GPS定期測位(Android Market)

アプリのアイコン、GPS衛星のつもりなんだけど・・・そう見えなかったらゴメンナサイ。

GPSでの測位を一定時間おきに行う、ただそれだけのアプリです。

このアプリそのものは、測位結果を記録することを目的としていません。

このアプリがGPSで測位したタイミングで、Google Latitudeが位置情報履歴を残してくれることを期待しています。

■製作意図

Androidの「無線とネットワーク」での位置情報取得を有効にしていると、時として非常に精度が悪い位置情報が取得されることがあります。

しかし、それを嫌って「無線とネットワーク」での位置情報取得を無効にし、「GPS機能を使用」だけを有効にしていると、Google Latitudeは自分でGPSを起動して位置情報を取りに行こうとはしないようで、Googleマップやその他のアプリがGPSを使った時、ついでに位置情報履歴を記録するだけのようです。逆に言うとGPSを使わないでいると、いつまでたっても履歴が残りません。

ならば、定期的にGPSで測位してやるアプリを動かしておけば、Google Latitudeも定期的に履歴を残してくれるのではないか?というのが本アプリの製作意図です。

実際、本アプリを15分おきの設定で動作させておけば、1時間に1~2回程度は、Google Latitudeで履歴が残るようになりました。

■設定・動作について

GPS測位間隔は、15分・30分・1時間・2時間 から選択できます。
(注:間隔は目安であり、正確ではありません)

GPSを起動して一定時間内に測位できなければその回の測位はあきらめますが、
そのタイムリミットは 30秒・1分・2分 から選択できます。

有効に設定すると、Androidを再起動しても、起動時から定期測位動作は有効になります。

アプリの画面には、直近10回までの測位動作結果を表示します。
動作時刻 OK 測位成功 測位までにかかった秒数と、大まかな座標を表示
動作時刻 NG 測位失敗 失敗判定までの秒数

本アプリの測位機能は常時バックグラウンドで動作しているわけではなく、必要時のみ起動しますので、バッテリ使用は最小限だと思います。
(技術的に言うと、ServiceをAlarmManagerによって起動しています)

動作確認は GALAXY SII(Docomo SC-02C) Android 2.3.5 で行っています。

2011/11/25 Ver 1.0 初版

XPortで、不特定多数の相手先とUDP通信する方法

LANTRONIXのXPortで、不特定多数の相手先とUDP通信する方法をググっていたら、以下のページが見つかった。

Sending UDP Datagrams to and from a Cobox, Xport, or WiPort

Undocumentedなモードがあって、

connectModeを 0xCC に設定
DatagramTypeを 0x00 に設定

すると、以下の形式のパケットをシリアルポートで送受信することで、UDPデータグラムを送受信するモードになる。
使用されるポートは送受信時共に 設定項目の Port No で設定したポートになるようだ。
(DatagramType 0x00 に設定すると、 Remote Port は設定できなくなる)

(余談: WordPress はなんで 0x00 … この x を全角に変換してしまうんだ??→いや全角エックスじゃないわ、&#215 の乗算記号か…計算式じゃないっちゅうの! → wp-includes/formatting.php の 55行目あたりの $dynamic_characters と $dynamic_replacements という置換用arrayの中(末尾)に、この余計なお世話な変換があったので、削った。 → 後記。WordPress3.4でも未だにこの変換が入ってるけど、96行目をコメントアウトすれば良くなった。わあ便利…)

■UDP送信

0x02 (スタートバイト)
0xC0 (相手先IPアドレス 1バイト目 例: 192)
0xA8 (相手先IPアドレス 2バイト目 例: 168)
0x00 (相手先IPアドレス 3バイト目 例: 0)
0x01 (相手先IPアドレス 4バイト目 例: 1)
0x00 (データバイト数 BigEndian H)
0x04 (データバイト数 BigEndian L 例: 4バイト)
0x30 (データ)
0x31 (データ)
0x32 (データ)
0x33 (データ)

上記の例の11バイトをXPortのシリアルポート RxDに受信させると、
XPortは 192.168.0.1:(Port Noで設定したポート) に “0123” の4バイトを入れたデータグラムを送信する。

■UDP受信

また、LAN上の、たとえば 192.168.0.2 のマシンから XPortのIPアドレス:(Port Noで設定したポート) へUDPデータグラムが届き、
中にたとえば”ABC” の3バイトが入っていたとすると、XPortは

0x02 (スタートバイト)
0xC0 (送信元IPアドレス 1バイト目 例: 192)
0xA8 (送信元IPアドレス 2バイト目 例: 168)
0x00 (送信元IPアドレス 3バイト目 例: 0)
0x02 (送信元IPアドレス 4バイト目 例: 2)
0x00 (データバイト数 BigEndian H)
0x03 (データバイト数 BigEndian L 例: 3バイト)
0x41 (データ)
0x42 (データ)
0x43 (データ)

の10バイトのパケットをシリアルポートのTxDから送出する。

これで、不特定多数の相手との双方向UDP通信ができる。