检测Android设备是否具有移动数据功能

检测Android设备是否具有移动数据功能,第1张

概述我想检测设备是否具有移动数据功能.通过移动数据功能,我不是指活动或连接的移动数据连接,而是指使用移动数据的能力.我目前使用以下内容if(getPackageManager().hasSystemFeature(PackageManager.FEATURE_TELEPHONY)){//Iassumedevicehasmobiledatacapability}

我想检测设备是否具有移动数据功能.通过移动数据功能,我不是指活动或连接的移动数据连接,而是指使用移动数据的能力.

我目前使用以下内容

if (getPackageManager().hasSystemFeature(PackageManager.FEATURE_TELEPHONY)) {    //I assume device has mobile data capability}

这适用于大多数情况,但只有一个 – 如果设备没有呼叫设施但能够利用蜂窝网络进行数据连接.这种设备通常是具有SIM卡插槽的平板电脑,但它只能用于数据连接,而不能用于呼叫.

在这种情况下以及在所有其他情况下,如何检测设备是否具有移动数据功能?什么是最好的方法?

解决方法:

我自己找到了解决方案.将它发布给可能需要它的其他人.

ConnectivityManager cm = (ConnectivityManager)         getSystemService(Context.CONNECTIVITY_SERVICE);NetworkInfo ni = cm        .getNetworkInfo(ConnectivityManager.TYPE_MOBILE);if (ni == null) {    // Device does not have mobile data capability}

从getNetworkInfo(int networkType)的文档:

Parameters: networkType integer specifying which networkType in which you’re interested.

Returns: a NetworkInfo object for the requested network type or null
if the type is not supported by the device
. This method requires the
caller to hold the permission
androID.Manifest.permission.ACCESS_NETWORK_STATE.

可以扩展此方法以检查其他类型的网络.只需将所需的networkType放入getNetworkInfo()即可.

就个人而言,我只是在执行此测试时
getPackageManager().hasSystemFeature(PackageManager.FEATURE_TELEPHONY)
返回false.然后,此检查可以确认设备是否具有移动数据功能,即使它没有电话功能(某些平板电脑就是这种情况).如果设备有FEATURE_TELEPHONY,我认为它具有移动数据功能.这样我们可以在大多数情况下减少执行时间.

总结

以上是内存溢出为你收集整理的检测Android设备是否具有移动数据功能全部内容,希望文章能够帮你解决检测Android设备是否具有移动数据功能所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1107716.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存