How to detect mobile hotspot feature availability in Android programmatically?
我希望标题本身能说明我的问题是什么...
例如,我们可以使用PackageManager来检查Wifi可用性,例如
1 | packageManager.hasSystemFeature(PackageManager.FEATURE_WIFI); |
类似地,有什么方法可以以编程方式检测Android中的移动热点功能的可用性吗?
谢谢。
我浏览了google文档,发现如果设备支持wifi P2P,那么它显然支持wifi热点
通过设备检查Wi-Fi Direct / wifi P2P,然后以这种方式检查
1 2 3 4 | PackageManager m = getPackageManager(); if (!m.hasSystemFeature(PackageManager.FEATURE_WIFI_DIRECT)) { // This device does support wifi P2P } |
但是Google表示最好以这种方式在您的广播接收器中检查这种支持
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | @Override public void onReceive(Context context, Intent intent) { ... String action = intent.getAction(); if (WifiP2pManager.WIFI_P2P_STATE_CHANGED_ACTION.equals(action)) { int state = intent.getIntExtra(WifiP2pManager.EXTRA_WIFI_STATE, -1); if (state == WifiP2pManager.WIFI_P2P_STATE_ENABLED) { // Wifi P2P is enabled } else { // Wi-Fi P2P is not enabled } } ... } |
检查google文档是否相同
这也许是解决方案的第一步。
请参阅:
Android Wifi热点管理器类
您可以通过调用
这将返回活动连接是否是热点(如"数据使用量"->"移动热点"中所定义)。
在类似问题上,这是一个很好的答案!!!
如何检测网络是否是Android上的移动热点(配置为)?
您可以通过调用以下命令进行检查:
这将返回或不返回Wifi热点中的当前活动连接。
我认为这对您有所帮助。