我正在为android编写一个应用程序。我的问题是我希望它强制在GPRS中连接而不使用wi fi。我有一个类似下面的解决方案,但这会导致应用程序在开始时崩溃。
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"
有人知道这个问题,还是设置连接类型的答案?
答案 0 :(得分:1)
我的问题是我希望它强制执行 GPRS中的连接而不使用wi 网络连接。
今天Android无法实现,抱歉。
答案 1 :(得分: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);
}