2

新しい Android フォンを使用していると、小さな問題が発生しました。私は A 国に住んでいますが、携帯電話会社は B 国のもので、価格が安いだけです。携帯電話料金に関して、私の国はB国にとって外国ではありません。しかし、Android携帯でデータローミングを有効にする必要があります。問題は、私もかなり頻繁に C 国にいて、毎回データローミングをオフにしなければならないことです。

そこで、A 国または B 国にいない場合はデータ ローミングを無効にし、それ以外の場合は有効にする小さなアプリを作成することを考えました。

私の最初の試みは、GPS を使用して位置を定義することでしたが、許可された範囲内にある場合はすべての座標を計算する必要があるため、これはかなり役に立ちません。したがって、より良い解決策は、電話から現在のプロバイダーを読み取ることであり、このプロバイダーがホワイトリスト (私が定義したもの) にない場合は、データローミングがオフになると思います.

他のアプローチを知っていますか?また、現在のプロバイダーの名前を取得するにはどうすればよいですか? プログラムでデータローミングを無効にする方法は?

4

2 に答える 2

5

TelephonyManager を使用できます。

TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);

あなたの場合に役立つかもしれないその方法のいくつか:

tm.getNetworkCountryIso();
tm.getNetworkOperator();
tm.getNetworkOperatorName();
tm.getSimCountryIso();
tm.getSimOperator();
tm.getSimOperatorName();
于 2010-07-05T00:24:30.187 に答える
1

逆ジオコーディングを使用できますか? ノミナティムのようなもの?GPS 座標を送信して、現在いる国を確認するだけです。

一方、この例は、電話が現在接続されているオペレーターの名前を取得する方法を示しています。

データ ローミングの無効化については、無効な APN の詳細を入力するとうまくいくようです。

于 2010-07-04T18:44:22.230 に答える