猿问
如何在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 public void onCreate(Bundle icicle){ .................... wifiManager = (WifiManager) this.getSystemService(Context.WIFI_SERVICE); if(wifiManager.isWifiEnabled()) { wifiManager.setWifiEnabled(false); } else { wifiManager.setWifiEnabled(true); }}如果您不想沿着那条路线走,您似乎可以告诉电话您更喜欢使用移动数据网络而不是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接收)我希望这有帮助。
0
0
0
随时随地看视频
慕课网APP
相关分类
Android
我要回答