我想检查我的Android应用程序是否启用了Hive数据。我找到了此代码,但它已弃用代码。我找不到一种方法来做到这一点,而不使用弃用代码。
private bool IsCellularDataEnabled(Context context)
{
var cm = (ConnectivityManager)context.GetSystemService(Context.ConnectivityService);
if (cm == null) return false;
if (Build.VERSION.SdkInt < BuildVersionCodes.M)
{
var ni = cm.ActiveNetworkInfo;
if (ni == null) return false;
return ni.IsConnected && ni.Type == ConnectivityType.Mobile;
}
return cm.GetNetworkCapabilities(cm.ActiveNetwork).HasTransport(Android.Net.TransportType.Cellular);
}
字符串
2条答案
按热度按时间b4qexyjb1#
在运行弃用代码之前,您正在执行SDK检查。这意味着您永远不会在任何设备上运行任何弃用代码。所以没有问题。
您的代码可以通过捕获
NoSuchMethodError
而不是SDK检查来改进。这更好,因为您没有检查错误SDK版本的风险。我已经用Java编写了改进的代码(我希望你不介意)。但是正如已经说过的,你也可以坚持你的代码。
字符串
5cg8jx4n2#
使用Xamarin.Essentials,您可以执行以下操作并检查所需的connection profile:
字符串
这将检查设备上是否启用了移动的数据。
不要忘记启用
ACCESS_NETWORK_STATE
权限,例如,通过将这一行添加到 AndroidManifest.xml(如果您还没有这样做):型