Android?kotlin?跳轉(zhuǎn)手機熱點開關頁面和判斷熱點是否打開(親測可用)

判斷熱點是否打開
網(wǎng)上方法比較多,我這邊使用了通過WifiManager 拿反射的getWifiApState方法獲取判斷,親測可用,最近迷上了擴展方法【dog】
fun Activity.isWifiApOpen(): Boolean {
try {
val manager = this.getSystemService(Context.WIFI_SERVICE) as WifiManager
//通過放射獲取 getWifiApState()方法
val method = manager.javaClass.getDeclaredMethod("getWifiApState")
//調(diào)用getWifiApState() ,獲取返回值
val state = method.invoke(manager) as Int
//通過放射獲取 WIFI_AP的開啟狀態(tài)屬性
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
}跳轉(zhuǎn)手機熱點開關頁面
跳轉(zhuǎn)手機熱點的頁面肯定是用intent,重點是action不知道是什么,網(wǎng)上最常見的就是Settings.ACTION_WIFI_SETTINGS 跳轉(zhuǎn)wifi設置頁面,費了一番力氣,同樣寫為擴展方法,我試過是可以跳轉(zhuǎn)熱點設置頁面的
值得注意的是,在部分機型或特殊情況下可能會沒有這個activity,因為framework層可能更改名稱,所以要做好準備
fun Activity.startWifiActivity(){
val intent = Intent(Settings.ACTION_WIRELESS_SETTINGS)
this.startActivity(intent)
}順帶介紹一些其他常用的設置頁面跳轉(zhuǎn)
同樣在部分機型或特殊情況下可能會沒有這個activity,得自己試試
ACTION_SETTINGS顧名思義 跳轉(zhuǎn)到系統(tǒng)設置頁面
ACTION_APN_SETTINGS跳轉(zhuǎn) APN設置界面
ACTION_LOCATION_SOURCE_SETTINGS跳轉(zhuǎn)位置服務界面(管理已安裝的應用程序)
ACTION_AIRPLANE_MODE_SETTINGS跳轉(zhuǎn)飛行模式設置頁面
ACTION_APPLICATION_DEVELOPMENT_SETTINGS跳轉(zhuǎn)開發(fā)者選項頁面
ACTION_APPLICATION_SETTINGS跳轉(zhuǎn)應用程序列表界面
ACTION_BLUETOOTH_SETTINGS跳轉(zhuǎn)藍牙設置頁面
其他熱點的一些相關知識
如果你的熱點不需要聯(lián)網(wǎng),可以使用Local-only hotspot
Local-only hotspot
Local-only hotspot 通過配置local-only熱點,連接到Wi-Fi熱點的設備上的應用可以相互通信。用這種方法創(chuàng)建的網(wǎng)絡將不能訪問Internet。每個應用程序只能對熱點進行一次請求,但多個應用程序可以同時請求熱點。當多個應用程序成功并發(fā)注冊時,它們共享底層熱點。onstarted (localonlyhotspotrevation)在熱點準備就緒時被調(diào)用。
如果我們的應用程序針對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中會有回調(diào)
參考
到此這篇關于Android kotlin 跳轉(zhuǎn)手機熱點開關頁面和判斷熱點是否打開的文章就介紹到這了,更多相關Android kotlin 跳轉(zhuǎn)手機熱點開關頁面內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Android中activity從創(chuàng)建到顯示的基本介紹
這篇文章主要給大家介紹了關于Android中activity從創(chuàng)建到顯示的相關資料,文中通過示例代碼介紹的非常詳細,對各位Android初學者們具有一定的參考學習價值,需要的朋友們下面隨著小編來一起看看吧。2017-11-11
Android從網(wǎng)絡中獲得一張圖片并顯示在屏幕上的實例詳解
這篇文章主要介紹了Android從網(wǎng)絡中獲得一張圖片并顯示在屏幕上的實例詳解的相關資料,希望通過本文能幫助大家實現(xiàn)這樣的功能,需要的朋友可以參考下2017-08-08
Android繼承ViewGroup實現(xiàn)Scroll滑動效果的方法示例
這篇文章主要介紹了Android繼承ViewGroup實現(xiàn)Scroll滑動效果的方法,結(jié)合實例形式分析了Android滑動效果的原理及擴展ViewGroup實現(xiàn)滑動功能的相關操作技巧,需要的朋友可以參考下2017-08-08

