2011年9月26日月曜日

Wi-Fiでゲートウェイにpingする (Android)

AndroidのWi-Fiを使ってpingする方法です。

まずはゲートウェイのアドレスを調べます。DhcpInfoのgatewayフィールドに入っています。

WiFiManager wifi = (WifiManager)getSystemService(WIFI_SERVICE);
DhcpInfo dhcpInfo = wifi.getDhcpInfp();
int gateway = dhcpInfo.gateway;

ここにはリトルエンディアンで入っています。これをビッグエンディアンの配列にします。

byte[] gatewayAddr = new byte[] {
        (byte)(gateway&255),
        (byte)((gateway>>8)&255),
        (byte)((gateway>>16)&255),
        (byte)((gateway>>24)&255)
};

あとは普通のJavaプログラムと同様にpingします。

InetAddress addr = InetAddress.getByAddress(gatewayAddr);
if ( addr.isReachable(3000) ) {
    …
}

2011年7月7日木曜日

GalaxySを2.3.3にアップデートしたらバッテリー消費が激しくなった

GalaxyS Android2.3.3のバッテリー問題。突然バッテリーの消費が激しくなり、8時間くらいでバッテリーを完全消費してしまう。

この問題、どうやら日本だけで起こっているわけではないらしい。
http://www.google.mk/support/forum/p/Google+Mobile/thread?tid=1ea61a8c2fffdb2e&hl=en

システムモニタのアプリで調べてみたら、原因はシステムプロセスのsuspend。アプリではない。

下のスクリーンショットを見ると、端末がスリープに入るとsuspendプロセスがCPUを使い始めていることがわかる。

バッテリー履歴1日CPU消費量システムプロセスのCPU使用量suspendプロセスのグラフ

いまのところ、バッテリー消費が激しくなったら再起動するしかないようだ。

2011年6月6日月曜日

ASPIRE 1830Z-F52Cの消費電力

ワットチェッカーで測ってみた。ワットチェッカーは1W単位でしか測れないので測定値はかなり大雑把な値。仕事に使っていても大体4~5時間くらいは使えるので夏の電力不足の時期には重宝しそう。

アイドル時

ディスプレイ輝度最大 10W
ディスプレイ輝度最小 7W
ディスプレイ輝度中間(10段階のうち下から5番目) 8W

バイオハザード5ベンチ

最大26W (ディスプレイ輝度中間)

スリープ時

0W (小さすぎて測れませんでした。1W未満ということ。)