我希望检测用户是否同时启用了后台数据(设置->帐户和同步->后台数据)和数据包数据(设置->无线和网络->移动网络->使用数据包数据),以便通知用户如何启用它们。
此链接说明如何测试背景数据,但已被弃用。该建议说使用 getActiveNetworkInfo() 但这可能会返回 WIFI 连接,因此如果启用了后台数据,则不会显示。
我还没有找到任何关于如何检测数据包数据是否启用的链接。
我希望检测用户是否同时启用了后台数据(设置->帐户和同步->后台数据)和数据包数据(设置->无线和网络->移动网络->使用数据包数据),以便通知用户如何启用它们。
此链接说明如何测试背景数据,但已被弃用。该建议说使用 getActiveNetworkInfo() 但这可能会返回 WIFI 连接,因此如果启用了后台数据,则不会显示。
我还没有找到任何关于如何检测数据包数据是否启用的链接。
我有这个完全相同的问题,我必须开始赏金才能得到答案。花费了我三分之一的声誉,但非常值得。
boolean mobileDataEnabled = false; // Assume disabled
ConnectivityManager cm1 = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
try {
Class cmClass = Class.forName(cm1.getClass().getName());
Method method = cmClass.getDeclaredMethod("getMobileDataEnabled");
method.setAccessible(true); // Make the method callable
// get the setting for "mobile data"
mobileDataEnabled = (Boolean)method.invoke(cm1);
} catch (Exception e) {
// Some problem accessible private API
// TODO do whatever error handling you want here
}
正如我所说,我不能声称知道这一点,我的问题得到了https://stackoverflow.com/users/769265/david-wasser的回答
但这让我付出了代价,所以如果你想接受这个作为答案,我可以开始让我的一些声望点回来!:)