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 看似簡單的問題,實現起來也不是...