如何在Android应用程序中代替Wi-fi使用3G连接?

如何在Android应用程序中代替Wi-fi使用3G连接?

我想连接3G连接,是否有示例代码可以连接3G而不是Wi-fi?


慕娘9325324
浏览 455回答 3
3回答

智慧大石

T-Mobile的“我的帐户”应用会执行此操作,如果您已连接到WiFi连接,它将告诉您他们的程序无法通过WiFi运行,然后询问用户是否要关闭WiFi连接。如果您选择“否”,则应用程序退出;如果您选择“是”,则该应用程序将关闭您的WiFi连接,然后继续启动。我认为这是一个很好的模型,它将确保您的应用程序不通过WiFi运行,并允许用户决定是否要关闭WiFi。此模型的一个改进是当用户离开您的应用时重新打开wifi。我尚未测试以下代码,但看起来应该可以工作(从此处修改)在清单中使用以下权限<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission><uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>这是一些打开/关闭WiFi的实际代码private WifiManager wifiManager;@Override&nbsp;public void onCreate(Bundle icicle){&nbsp; &nbsp; ....................&nbsp; &nbsp; wifiManager = (WifiManager) this.getSystemService(Context.WIFI_SERVICE);&nbsp; &nbsp; if(wifiManager.isWifiEnabled())&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; wifiManager.setWifiEnabled(false);&nbsp; &nbsp; }&nbsp; &nbsp; else&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; wifiManager.setWifiEnabled(true);&nbsp; &nbsp; }}如果您不想沿着那条路线走,您似乎可以告诉电话您更喜欢使用移动数据网络而不是wifi网络。Android ConnectivityManager提供了setNetworkPreference函数。确实没有记录此功能,因为您可以确定是否单击链接。我会尽量解决,因为定义的常量似乎暗示您可以将其设置为TYPE_MOBILE或TYPE_WIFI,并且还有一个DEFAULT_NETWORK_PREFERENCE常量,它也定义为0x00000001,与TYPE_WIFI相同。因此,尝试通过调用以下方式访问ConnectivityManagerContext.getSystemService(Context.CONNECTIVITY_SERVICE);然后尝试使用setNetworkPreference()函数。它似乎不需要清单中的任何权限,但可能需要CHANGE_NETWORK_STATE权限或类似的内容。如果您起诉setNetworkPreference函数,则最好将网络首选项也设置回其原始值(从getNetworkPreference接收)我希望这有帮助。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Android