2007-10-02

受信信号強度の取得 その3

昨日 CString::Midがうまく動かないと悩んでいた件は単なる勘違いでした。
 
W-SIMから"at@@lvl00OK"のようなレスポンスが返ってきたときに、
if (strResponse.Mid(7, 2) == _T("00")) {
    // 圏外
}
としていたのですが、 よく見るとレスポンスは "at@@lvl00OK"ではなく "at@@lvl\r00\r\n\r\nOK\r\n" となっています。
 
CR/LFを含めることで無事に動作するようになりました。
if (strResponse.Mid(8, 2) == _T("00")) {
    // 圏外
}
 
ところがアプリに組み込むと本来のアンテナ表示が頻繁に圏外になります。
どうやら W-SIMの取り合いになっているみたいです。
考えてみたらその通りですよね...。
 
 
その後、レジストリの HKCU\Software\Sharp\ShPhoneLib\RFStrengthというキーに気付きました。
結果的にこのレジストリを監視することで 他に影響を出さずに電波状態を取得できるようになったのですが、 今度は本体が節電状態になると動作しないようです。
 
節電状態でもアプリを動作させるというのは可能なのでしょうか?
相変わらず先は長そうです。
 

0 件のコメント: