回答
此代碼示例應該爲Android手機運行工作薑餅和更高:此啓用/禁用數據連接
private void setMobileDataEnabled(Context context, boolean enabled) {
final ConnectivityManager conman = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
final Class conmanClass = Class.forName(conman.getClass().getName());
final Field iConnectivityManagerField = conmanClass.getDeclaredField("mService");
iConnectivityManagerField.setAccessible(true);
final Object iConnectivityManager = iConnectivityManagerField.get(conman);
final Class iConnectivityManagerClass = Class.forName(iConnectivityManager.getClass().getName());
final Method setMobileDataEnabledMethod = iConnectivityManagerClass.getDeclaredMethod("setMobileDataEnabled", Boolean.TYPE);
setMobileDataEnabledMethod.setAccessible(true);
setMobileDataEnabledMethod.invoke(iConnectivityManager, enabled);
}
不要忘了此行添加到您的清單文件
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
另外, 我知道啓用或禁用wifi:
WifiManager wifiManager = (WifiManager)this.context.getSystemService(Context.WIFI_SERVICE);
wifiManager.setWifiEnabled(status);
其中狀態根據需求可能爲真或假。
此外,在清單:
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
謝謝你,這正是我所追求的。:) – Classtronaut
比接受答案是一個好主意。 – JacksOnF1re
它不適合我。我得到這個錯誤'java.lang.NoSuchMethodException:setMobileDataEnabled [boolean]'。設備:Nexus 5x,Android版本:7.1.1 –
如果你正在使用模擬器,你可以在DDMS
設置關閉上網功能吧。
退房:
好了,停用WiFi,您可以使用此代碼:
WifiManager wifiManager = (WifiManager)this.context.getSystemService(Context.WIFI_SERVICE);
wifiManager.setWifiEnabled(true); // "true" TO ENABLE || "false" TO DISABLE
要禁用數據連接,您可以在這裏使用解決方案:https://stackoverflow.com/a/4304110/450534。但是這種方法,確實在2.3+
不在這裏工作這個答案有兩個2.3 + 2.2及以下解決方案:https://stackoverflow.com/a/12535246/450534。你可以做一個簡單的API檢查並決定運行哪一段代碼。像這樣的東西應該讓你成立:
int currentAPIVersion = android.os.Build.VERSION.SDK_INT;
if (currentAPIVersion >= android.os.Build.VERSION_CODES.GINGERBREAD) {
// RUN THE CODE FOR 2.3+
} else {
// RUN THE CODE FOR API LEVEL BELOW 2.3
}
看看這兩個作品中的哪一個適合你。我懷疑,這將是後者。儘管如此,我個人從未嘗試過測試啓用或禁用數據連接。
支持鏈接解決方案的作者。 ;-)
注意:數據連接解決方案基於非官方API,可能在未來的版本中無法使用。
- 1. 禁用JVM的「互聯網訪問」?
- 2. Android:互聯網訪問應用程序
- 3. Android的互聯網訪問控制
- 4. Android Wear Watchface需要訪問互聯網
- 5. Ionic Android版沒有訪問互聯網
- 6. 暫時禁用JS交互?
- 7. 從互聯網訪問XAMPP
- 8. 使用互聯網訪問網站的android編程
- 9. 互聯網禁用programmaticaly
- 10. 禁用使用計時器在特定日期啓用互聯網訪問
- 11. 如何檢查互聯網訪問在android中啓用?
- 12. Android應用內的互聯網訪問 - 使用phonegap和Eclipse
- 13. 使用Monoouch檢查互聯網訪問
- 14. 暫時禁用mysql遠程訪問
- 15. 最快的方式來檢查Android中的互聯網訪問
- 16. 不能給訪問互聯網,我的Android應用程序
- 17. SSRS報告的互聯網訪問
- 18. 從互聯網訪問的Python程序
- 19. 識別訪問互聯網的進程
- 20. 的Eclipse:APP無法訪問互聯網
- 21. android:如何從互聯網訪問移動網絡服務器
- 22. Android應用程序無法訪問互聯網
- 23. 通過Android應用程序訪問互聯網
- 24. 如何讓模擬器在android中訪問互聯網?
- 25. Android模擬器中沒有互聯網訪問
- 26. 無法在Android模擬器中訪問互聯網
- 27. 暫時禁用PHP網站
- 28. android WebView互聯網訪問問題,因爲代理?
- 29. Android的互聯網連接問題
- 30. ANDROID_ID是否依賴互聯網訪問?
你想要做的代碼?或者只是手動在設備上禁用它? –
在代碼理想情況下,我想能夠將其納入JUnit測試。 – Classtronaut