既存のJMEアプリケーションを移行する社内Androidアプリがあります。現場のユーザーが、信号強度が低いときにデータを送信しようとしたときにデバイスのバッテリが消耗したと不満を表明していた問題がありました(これはモバイルデバイスの一般的な動作であり、当面の問題ではありません)。GSMが '99'を返すときの信号強度を調べる方法は?
データ速やかに送信する必要がありますが、すぐに送信する必要はありませんので、データを送信する前に信号強度を確認しました。このチェックでは、PhoneStateListener
とonSignalStrengthsChanged(SignalStrength signalStrength)
コールバックを使用していました。
これは自分の電話機(オーストラリアのTelstraで動作します)とSignalStrengthで正常に動作します.getGsmSignalStrength()は、期待通りに値を0-31
から返します。しかし、別のネットワーク(Optus Australia)で動作している電話機では、GSMは正しいと報告しますが、信号強度を決定するときには99(つまりエラーコード)を返します。 GSMは2Gデータであり、確認する必要があるのは3G UMTS/HSPAなので、これはまだ正しい動作だと思います。 UMTS/HSPAは、期待通りに電話機のElixir
アプリによって報告されたネットワークです。また、私のネットワーク(Telstra Australia)がアプリケーションからデータを送信するGSMの能力が不十分だとはっきりしない報告がありましたが、インターネットを閲覧して問題なしに他のデータ活動を実行することができます。これは、GSMの強みがとにかくチェックするのは間違っていると私に信じさせる。
同じネットワーク上の他のAndroid端末でテストを実行中ですが(まだ一部のデバイスにアクセスしようとしていますが)、私たちはインターネットを閲覧して、アプリケーションでは、信号強度をチェックしても常に「99」を受信すると失敗します。 Optusでは、SignalStrength.toString()は、複数のタワーに対して数日間のテストを行った後、常に99 -1 -1 -1 -1 -1 -1 gsm 3
を返します。
(未回答)最も近いSOスレッドがこの一つである:Getting Signal Strength RSCP and Ec/Io from a phone served by a HSPA network要約
:
- テルストラ接続はGSMが真であり、使用可能な信号強度を返し
- Optusの接続はGSMを報告する報告本当だが、常に '99'と報告する
- GSMはおそらくチェックするのが間違っている可能性があります。私たちは '実際のデータを取得しようとする必要があります複数のベンダーと複数(オーストラリア)キャリアから複数の携帯電話でテストした後、伝送ネットワークの強さ "
私はここで同じ問題を抱えています。解決策や回避策がある場合は、私と共有してください。 – NyanLH
残念ながら、私たちが見つけた唯一の解決策は、常にGSMの強さに関係なくデータを送信するアプリケーションに「常に送信する」設定を設けることでした。 –
また、この問題はSamsung Galaxy Tab 7.7でも発生しています。これが問題だったときに使っていたAndroidのバージョンは何ですか? Android 4.xにアップグレードしたときに問題が解消されましたか? (銀河のタブはAndroid 3.xで動作します) – Diederik