2

私はアンドロイド用のアプリケーションを書いています。私の問題は、Wi-Fiを使用せずに、GPRSで接続を強制することです。私は以下のような解決策を持っていますが、これは起動時にアプリケーションのクラッシュを引き起こします。

ConnectivityManager CM = 
    (ConnectivityManager) this.getSystemService(Context.CONNECTIVITY_SERVICE);
CM.setNetworkPreference(ConnectivityManager.TYPE_MOBILE);

また、以下の設定行をマニフェストファイルに追加しました。

uses-permission android:name="android.permission.WRITE_SETTINGS" 
uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" 
uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"
uses-permission android:name="android.permission.CHANGE_CONFIGURATION" 
uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" 

誰かが問題、または接続タイプを設定するための答えを知っていますか?

4

2 に答える 2

1

私の問題は、Wi-Fiを使用せずに、GPRSで接続を強制することです。

申し訳ありませんが、今日のAndroidではそれは不可能です。

于 2010-02-09T16:19:45.483 に答える
1

Wi-Fiがオンになっているかどうかを確認できます。また、Android 2.0以降では、プログラムでWi-Fiを有効または無効にできます。Android 1.xでできる最善の方法は、ユーザーに無効にして[設定]ページを表示する必要があることを伝えることです。

/**
 * Checks if Wi-Fi is on. 
 * 
 * @return true, if Wi-fi is on.
 */
public static boolean isWiFiOn()
{
    WifiManager wifi = (WifiManager) MyAccountApplication.getContext().getSystemService(Context.WIFI_SERVICE);

    if (wifi == null)
        return false;

    List<WifiConfiguration> config = wifi.getConfiguredNetworks();

    if (config != null)
        for (int i = 0; i < config.size(); i++)
        {
            if (config.get(i).status == WifiConfiguration.Status.CURRENT)
            {
                return true;
            }
        }
    return false;
}

public static void setWiFi(Context context, boolean enabled)
{
    WifiManager wifi = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);

    if (wifi != null)
        wifi.setWifiEnabled(enabled);
}
于 2011-06-13T19:06:37.223 に答える