桂林网站seo,导航网站模板,新余 网站建站 设计 公司,企业品牌网站建设怎么做Android kotlin 跳转手机热点开关页面和判断热点是否打开 判断热点是否打开跳转手机热点开关页面顺带介绍一些其他常用的设置页面跳转 其他热点的一些相关知识Local-only hotspot 参考 判断热点是否打开
网上方法比较多#xff0c;我这边使用了通过WifiManager 拿反射的getWi… Android kotlin 跳转手机热点开关页面和判断热点是否打开 判断热点是否打开跳转手机热点开关页面顺带介绍一些其他常用的设置页面跳转 其他热点的一些相关知识Local-only hotspot 参考 判断热点是否打开
网上方法比较多我这边使用了通过WifiManager 拿反射的getWifiApState方法获取判断亲测可用最近迷上了扩展方法【dog】
fun Activity.isWifiApOpen(): Boolean {try {val manager this.getSystemService(Context.WIFI_SERVICE) as WifiManager//通过放射获取 getWifiApState()方法val method manager.javaClass.getDeclaredMethod(getWifiApState)//调用getWifiApState() 获取返回值val state method.invoke(manager) as Int//通过放射获取 WIFI_AP的开启状态属性val field: Field manager.javaClass.getDeclaredField(WIFI_AP_STATE_ENABLED)//获取属性值val value field.get(manager) as Int//判断是否开启return state value} catch (e: NoSuchMethodException) {e.printStackTrace()} catch (e: IllegalAccessException) {e.printStackTrace()} catch (e: InvocationTargetException) {e.printStackTrace()} catch (e: NoSuchFieldException) {e.printStackTrace()}return false
} 跳转手机热点开关页面
跳转手机热点的页面肯定是用intent重点是action不知道是什么网上最常见的就是Settings.ACTION_WIFI_SETTINGS 跳转wifi设置页面费了一番力气同样写为扩展方法我试过是可以跳转热点设置页面的 值得注意的是在部分机型或特殊情况下可能会没有这个activity因为framework层可能更改名称所以要做好准备 fun Activity.startWifiActivity(){val intent Intent(Settings.ACTION_WIRELESS_SETTINGS)this.startActivity(intent)
}顺带介绍一些其他常用的设置页面跳转 同样在部分机型或特殊情况下可能会没有这个activity得自己试试 ACTION_SETTINGS 顾名思义 跳转到系统设置页面 ACTION_APN_SETTINGS 跳转 APN设置界面 ACTION_LOCATION_SOURCE_SETTINGS 跳转位置服务界面管理已安装的应用程序 ACTION_AIRPLANE_MODE_SETTINGS 跳转飞行模式设置页面 ACTION_APPLICATION_DEVELOPMENT_SETTINGS 跳转开发者选项页面 ACTION_APPLICATION_SETTINGS 跳转应用程序列表界面 ACTION_BLUETOOTH_SETTINGS 跳转蓝牙设置页面
其他热点的一些相关知识
如果你的热点不需要联网可以使用Local-only hotspot
Local-only hotspot
Local-only hotspot 通过配置local-only热点连接到Wi-Fi热点的设备上的应用可以相互通信。用这种方法创建的网络将不能访问Internet。每个应用程序只能对热点进行一次请求但多个应用程序可以同时请求热点。当多个应用程序成功并发注册时它们共享底层热点。onstarted (localonlyhotspotrevation)在热点准备就绪时被调用。
如果我们的应用程序针对Android 13 (API级别33)或更高版本则必须请求NEARBY_WIFI_DEVICES使用仅限本地的热点如下面的代码片段所示。针对较早版本Android的应用必须请求ACCESS_FINE_LOCATION。
manifest ...!-- If your app targets Android 13 (API level 33)or higher, you must declare the NEARBY_WIFI_DEVICES permission. --uses-permission android:nameandroid.permission.NEARBY_WIFI_DEVICES!-- If your app derives location information fromWi-Fi APIs, dont include the usesPermissionFlagsattribute. --android:usesPermissionFlagsneverForLocation /uses-permission android:nameandroid.permission.ACCESS_FINE_LOCATION!-- If any feature in your app relies onprecise location information, dont include themaxSdkVersion attribute. --android:maxSdkVersion32 /application ....../application
/manifest对应方法
WifiManager中的
public void startLocalOnlyHotspot (WifiManager.LocalOnlyHotspotCallback callback, Handler handler)可以同时连多个开启失败在callback中会有回调
参考
安卓官网WifiManager