僅通過藍芽HID將安卓9 0模擬成滑鼠和鍵盤

2021-10-04 19:30:45 字數 2713 閱讀 1054

bluetoothhiddevice

android.bluetooth.bluetoothhiddevice是完成任務的核心類。通過它將我們的應用註冊成具有hid特徵的藍芽裝置,並傳送hid裝置的報告描述符。如果我們的報告描述符沒有問題,那麼我們的裝置就會成功模擬想要的hid裝置。

碼磚思路

首先將我們的應用註冊為hid裝置;

bluetoothadapter.

getdefaultadapter()

.getprofileproxy

(context, mprofileservicelistener,bluetoothprofile.hid_device)

;public

static

bluetoothprofile.servicelistener mprofileservicelistener =

newbluetoothprofile.servicelistener()

@suppresslint

("newapi"

) @override

public

void

onserviceconnected

(int profile,

bluetoothprofile proxy)}}

;public

static final bluetoothhiddevice.callback mcallback =

newbluetoothhiddevice.callback()

@override

public

void

onconnectionstatechanged

(bluetoothdevice device,

int state)

}else

if(state == bluetoothprofile.state_connected)

}else

if(state == bluetoothprofile.state_connecting)}}

};

然後判斷想要連線的藍芽裝置有沒有配對過(雙方都要配對好),如果沒有配對則需要建立配對;

public

static boolean pair

(string deviceaddress)

if(btdevice.

getbondstate()

== bluetoothdevice.bond_none)

else

if(btdevice.

getbondstate()

== bluetoothdevice.bond_bonded)

else

if(btdevice.

getbondstate()

== bluetoothdevice.bond_bonding)

}catch

(exception ex)

}return

false

;}

配對完成後獲取藍芽裝置的mac位址,用mac位址連線目標裝置;

public

static boolean connect

(string deviceaddress)

mbluetoothadapter = bluetoothadapter.

getdefaultadapter()

;if(btdevice ==

null

) boolean ret = hiddevice.

connect

(btdevice)

;return ret;

}

ios13相關設定安裝了hiddroid後的安卓機要控制蘋果手機需要做如下設定,在蘋果手機上找到:設定->輔助功能->觸控->輔助觸控->裝置,選擇已經配對並連線的安卓手機,設定成功後螢幕上出現乙個白色的球,這個球就是滑鼠指標。

**執行效果

讓你的安卓手機變成鍵盤滑鼠

2020.11.11編輯

[win10下**控制效果]

[ios13**控制效果]

2020.11.15編輯

就在實現了**控制的功能後,偶然在微軟的**上看到了顯示器亮度調節相關的hid描述符,果斷決定試試。看看微軟官網怎麼描述顯示器亮度調節的:

2020.11.22編輯

最近家裡新添了小度x8智慧型屏音響,用hiddroid連線小度x8也是沒有問題的,意外的是發現調節螢幕亮暗的功能在小度x8的dueros下也能得到支援,音量調節也是可以的。

下面一篇部落格談談如何通過藍芽將安卓手機模擬成遊戲方向盤:通過藍芽讓安卓9.0成為pc遊戲方向盤手柄-支援旋轉輪胎

《僅通過藍芽hid將安卓9.0模擬成滑鼠和鍵盤》原始碼

通過藍芽操作樹莓派

在前面的一些文章中,筆者曾使用usb網路共享的方式來操作樹莓派,但是這個操作還是很麻煩,所以筆者上網查了一下,摸索出了乙個用藍芽無線操作樹莓派的方法 首先,先開啟藍芽服務並設定為開機自啟 service bluetooth start update rc.d bluetooth enable接著,按...

android通過藍芽向低功耗藍芽裝置寫資料

android 手機 ble 藍芽模組 arduino due 藍芽連線暫時不寫,等手機藍芽連線ble藍芽模組和樹莓派內建藍芽模組2種方式程式寫完後,在回來補充。currentcharac.setvalue test m bt.writecharacteristic currentcharac cu...

Linux 如何通過命令僅獲取IP位址

一同事的朋友正在參加筆試,遇到這麼乙個問題讓他幫忙解決,結果同事又找到我幫他搞定。真是感慨 通訊發達在某些方面來說,真不知是不是好事啊!題目大致如下所示,一般我們使用ifconfig檢視網絡卡資訊,請問你可以通過什麼命令,讓其只輸出ip位址192.168.42.128 看似簡單的問題,實現起來也不是...