Android kotlin 跳转手机热点开关页面和判断热点是否打开(亲测可用)

 更新时间:2023年08月22日 16:32:26   作者:我怀里的猫  
跳转手机热点的页面肯定是用intent,重点是action不知道是什么,网上最常见的就是Settings.ACTION_WIFI_SETTINGS 跳转wifi设置页面,本文介绍Android kotlin 跳转手机热点开关页面和判断热点是否打开,感兴趣的朋友一起看看吧

判断热点是否打开

网上方法比较多,我这边使用了通过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:name="android.permission.NEARBY_WIFI_DEVICES"
                     <!-- If your app derives location information from
                          Wi-Fi APIs, don't include the "usesPermissionFlags"
                          attribute. -->
                     android:usesPermissionFlags="neverForLocation" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"
                     <!-- If any feature in your app relies on
                          precise location information, don't include the
                          "maxSdkVersion" attribute. -->
                     android:maxSdkVersion="32" />
    <application ...>
        ...
    </application>
</manifest>

对应方法

WifiManager中的

public void startLocalOnlyHotspot (WifiManager.LocalOnlyHotspotCallback callback, 
                Handler handler)

可以同时连多个,开启失败在callback中会有回调

参考

安卓官网WifiManager

到此这篇关于Android kotlin 跳转手机热点开关页面和判断热点是否打开的文章就介绍到这了,更多相关Android kotlin 跳转手机热点开关页面内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Android中多个EditText输入效果的解决方式

    Android中多个EditText输入效果的解决方式

    这篇文章主要给大家介绍了关于Android中多个EditText输入效果的解决方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-01-01
  • Android中activity从创建到显示的基本介绍

    Android中activity从创建到显示的基本介绍

    这篇文章主要给大家介绍了关于Android中activity从创建到显示的相关资料,文中通过示例代码介绍的非常详细,对各位Android初学者们具有一定的参考学习价值,需要的朋友们下面随着小编来一起看看吧。
    2017-11-11
  • 快速掌握Android屏幕的知识点

    快速掌握Android屏幕的知识点

    相信不少设计师和工程师都被安卓设备纷繁的屏幕搞得晕头转向,我既做UI设计,也做过一点安卓界面布局,刚好对这块内容比较熟悉,所以在此我将此部分知识重新梳理出来分享给大家!有需要的朋友们可以参考借鉴,下面来一起学习学习吧。
    2016-11-11
  • Android从网络中获得一张图片并显示在屏幕上的实例详解

    Android从网络中获得一张图片并显示在屏幕上的实例详解

    这篇文章主要介绍了Android从网络中获得一张图片并显示在屏幕上的实例详解的相关资料,希望通过本文能帮助大家实现这样的功能,需要的朋友可以参考下
    2017-08-08
  • Android曲线更圆滑的签名画板

    Android曲线更圆滑的签名画板

    这篇文章主要为大家详细介绍了Android曲线更圆滑的签名画板,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-04-04
  • android tv列表焦点记忆实现的方法

    android tv列表焦点记忆实现的方法

    本篇文章主要介绍了android tv列表焦点记忆实现的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04
  • 安卓(Android)聊天机器人实现代码分享

    安卓(Android)聊天机器人实现代码分享

    这是一个安卓智能聊天机器人的源码,采用了仿微信的风格设计,调用的是图灵机器人的API,能够实现智能聊天、讲故事、讲笑话、查天气、查公交等丰富的功能
    2015-11-11
  • Android继承ViewGroup实现Scroll滑动效果的方法示例

    Android继承ViewGroup实现Scroll滑动效果的方法示例

    这篇文章主要介绍了Android继承ViewGroup实现Scroll滑动效果的方法,结合实例形式分析了Android滑动效果的原理及扩展ViewGroup实现滑动功能的相关操作技巧,需要的朋友可以参考下
    2017-08-08
  • Android解决所有双击优化的问题

    Android解决所有双击优化的问题

    这篇文章主要为大家介绍了Android解决所有双击优化的问题,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • RecyclerView的使用之多种Item加载布局

    RecyclerView的使用之多种Item加载布局

    本文给大家介石介绍下如何利用RecyclerView实现多Item布局的加载,多Item布局的加载的意思就是在开发过程中List的每一项可能根据需求的不同会加载不同的Layout
    2016-03-03

最新评论