我正在开发一个应用程序,我担心用户之间可以传输的数据量。由于一些用户的移动数据计划有限,而另一些则没有,我想知道是否可以开发一个开关来禁用我的特定应用程序的移动数据。
有点像Android自己的数据使用->移动->应用程序->“限制后台数据”的作用......
它说(并且确实)“仅禁用移动数据网络上的后台数据。如果可用,将使用 Wi-Fi。”,我想要这一点,但不仅仅是在后台。
我确实知道我无法更改“限制后台数据”选项,因为如果应用程序可以取消切换它,它就会变得毫无用处......但是有没有一种方法可以让我以编程方式说现在我的应用程序被阻止访问移动数据,现在不是吗?
为了了解我为什么想要这个,我试图在用户选择给定选项时不调用远程访问调用(我做了并且有效),但有一些数据泄漏(每天一些 kbs),我似乎无法阻止...要么是由于系统保持 http 连接,要么是其他一些晦涩的原因...
我在我的应用程序的网络统计信息上从 DDMS 角度看到这些数据传输。
谢谢你的帮助
最好检查活动连接是否是 wifi,而不是禁用,如果不是 wifi,则不要进行任何服务器端通信。
例如,检查下面的线程。
如何查看 Android 上的 Wi-Fi 是否已连接? https://stackoverflow.com/questions/3841317/how-to-see-if-wifi-is-connected-in-android
ConnectivityManager connManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo mWifi = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (mWifi.isConnected()) {
// Do whatever
}
记得添加
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
到您的 AndroidManifest.manifest 才能正常工作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)