易安卓E4A安卓手機BLE藍牙控制,通過BLE藍牙模塊串口連接電腦或單片機實現(xiàn)通信,手機接收顯示電腦或單片機發(fā)來的信息,同時手機可通過藍牙發(fā)送控制命令到電腦或單片機。手機APP用E4A6.9版本實現(xiàn),純中文的安卓手機APP編程軟件,界面友好,實例與教程也很詳細,學習中文編程的好軟件。
下面是主窗口代碼:
變量 服務UUID 為 文本型
變量 通道UUID 為 文本型
變量 設備地址 為 文本型
事件 主窗口.創(chuàng)建完畢()
'安卓6.0以上的系統(tǒng)需要動態(tài)申請權(quán)限,否則app可能無法正常運行
如果 權(quán)限操作1.取系統(tǒng)版本號()>=23 則
權(quán)限操作1.申請全部權(quán)限()
結(jié)束 如果
置狀態(tài)欄顏色(標簽_窗口標題.背景顏色)'E4A的設置里,窗口風格要設置為沉浸模式,此命令才能生效
'添加底部導航選項卡,組件的高度建議設置為32
'底部導航1.背景顏色 = 白色
'底部導航1.置文字顏色("#C0C0C0")
'底部導航1.置文字激活顏色("#00BFFF")
'底部導航1.置字體大小(10)
'底部導航1.添加項目("直播","btn_live.png","btn_live_selected.png")
'底部導航1.添加項目("視頻","btn_video.png","btn_video_selected.png")
'底部導航1.添加項目("更多","btn_more.png","btn_more_selected.png")
'底部導航1.添加項目("我的","btn_user.png","btn_user_selected.png")
'底部導航1.置現(xiàn)行選中項(0)
'添加右上角的菜單
高級菜單1.初始化(R.bkg,白色,真)'bkg是一個9宮格圖片,存放在drawable圖片資源里
高級菜單1.添加菜單項("menu_icon_1.png","菜單項一")
高級菜單1.添加菜單項("menu_icon_2.png","菜單項二")
高級菜單1.添加菜單項("menu_icon_3.png","菜單項三")
變量 結(jié)果 為 邏輯型
結(jié)果 = BLE藍牙1.初始化()
彈出提示("初始化結(jié)果: " & 結(jié)果)
結(jié)束 事件
事件 權(quán)限操作1.申請完畢(權(quán)限數(shù)組 為 文本型(),申請結(jié)果 為 整數(shù)型())
'可以把需要特殊權(quán)限的代碼寫在此處,當申請權(quán)限成功后再執(zhí)行相關代碼
結(jié)束 事件
'事件 底部導航1.項目被選擇(項目索引 為 整數(shù)型)
' 彈出提示("項目被選擇:" & 項目索引)
'結(jié)束 事件
事件 主窗口.按下某鍵(鍵代碼 為 整數(shù)型,傳址 屏蔽 為 邏輯型)
如果 鍵代碼 = 返回鍵 則
返回桌面()
結(jié)束 如果
結(jié)束 事件
事件 圖片框_返回.被單擊()
返回桌面()
結(jié)束 事件
事件 圖片框_菜單.被單擊()
高級菜單1.彈出菜單2(圖片框_菜單,200)
結(jié)束 事件
事件 高級菜單1.菜單被選擇(索引 為 整數(shù)型,圖標 為 文本型,標題 為 文本型)
彈出提示(標題)
結(jié)束 事件
事件 BLE藍牙1.創(chuàng)建完畢()
結(jié)束 事件
事件 搜索藍牙.被單擊()
如果 搜索藍牙.標題 = "開始搜索" 則
位置傳感器1.開始監(jiān)測()
BLE藍牙1.開始搜索()
時鐘1.時鐘周期 = 10*1000
搜索藍牙.標題 = "停止搜索"
否則
BLE藍牙1.停止搜索()
時鐘1.時鐘周期 = 0
搜索藍牙.標題 = "開始搜索"
結(jié)束 如果
結(jié)束 事件
事件 時鐘1.周期事件()
BLE藍牙1.停止搜索()
搜索藍牙.標題 = "開始搜索"
時鐘1.時鐘周期 = 0
結(jié)束 事件
事件 BLE藍牙1.發(fā)現(xiàn)設備(名稱 為 文本型,地址 為 文本型,MajorID 為 整數(shù)型,MinorID 為 整數(shù)型,配對狀態(tài) 為 整數(shù)型)
如果 名稱 = "BT24" 則 '屏蔽掉沒有名稱的藍牙設備
彈出提示("發(fā)現(xiàn)設備")
列表框1.添加項目("名稱: " & 名稱 & "\n 地址: " & 地址)
列表框1.置項目標記(列表框1.取項目數(shù)()-1,地址)
結(jié)束 如果
結(jié)束 事件
事件 BLE藍牙1.信號強度改變(名稱 為 文本型,地址 為 文本型,信號強度 為 整數(shù)型)
如果 名稱 = "BT24" 則
列表框1.置項目內(nèi)容(0,"名稱: " & 名稱 & "\n 地址: " & 地址 & "\n 信號: " & 信號強度)
結(jié)束 如果
結(jié)束 事件
事件 BLE藍牙1.連接狀態(tài)改變(狀態(tài) 為 整數(shù)型)
如果 狀態(tài) = 1 則
連接狀態(tài).標題 = "已連接"
連接狀態(tài).背景顏色 = 綠色
否則
連接狀態(tài).標題 = "已斷開"
連接狀態(tài).背景顏色 = 紅色
結(jié)束 如果
結(jié)束 事件
事件 BLE藍牙1.發(fā)現(xiàn)服務(服務信息 為 集合)
如果 服務信息.取項目總數(shù)() < 0 則
退出
結(jié)束 如果
變量 i 為 整數(shù)型
變量 j 為 整數(shù)型
變量 信息數(shù)組 為 文本型()
i = 0
判斷循環(huán)首 i < 服務信息.取項目總數(shù)()
信息數(shù)組 = 服務信息.取項目(i)
j = 0
判斷循環(huán)首 j < 取數(shù)組成員數(shù)(信息數(shù)組)
如果 j >0 則
如果 BLE藍牙1.是否可讀(信息數(shù)組(0),信息數(shù)組(j)) =真 且 BLE藍牙1.是否可寫(信息數(shù)組(0),信息數(shù)組(j)) =真 且 BLE藍牙1.是否可通知(信息數(shù)組(0),信息數(shù)組(j)) =真 則
服務UUID = 信息數(shù)組(0)
通道UUID = 信息數(shù)組(j)
'BLE藍牙1.讀取數(shù)據(jù)(服務UUID,通道UUID)
'接收框.內(nèi)容 = 服務 UUID &"\n"&通道 UUID
時鐘2.時鐘周期 = 1000
結(jié)束 如果
結(jié)束 如果
j = j + 1
判斷循環(huán)尾
i = i + 1
判斷循環(huán)尾
結(jié)束 事件
事件 BLE藍牙1.讀取數(shù)據(jù)完畢(結(jié)果 為 整數(shù)型,服務UUID 為 文本型,通道UUID 為 文本型,數(shù)據(jù) 為 字節(jié)型())
如果 結(jié)果 = 1 則
彈出提示("讀取數(shù)據(jù)成功: " & 通道UUID & "\n 數(shù)據(jù): " & 字節(jié)集到十六進制(數(shù)據(jù)))
否則
彈出提示("讀取數(shù)據(jù)失。 " & 通道UUID & "\n 數(shù)據(jù): " & 字節(jié)集到十六進制(數(shù)據(jù)))
結(jié)束 如果
結(jié)束 事件
事件 BLE藍牙1.通道數(shù)據(jù)改變(服務UUID 為 文本型,通道UUID 為 文本型,數(shù)據(jù) 為 字節(jié)型())
彈出提示("通道數(shù)據(jù)改變" & 通道UUID & "\n 數(shù)據(jù): " & 字節(jié)集到十六進制(數(shù)據(jù)))
接收框.加入文本(字節(jié)到文本(數(shù)據(jù),"GBK"))
結(jié)束 事件
事件 BLE藍牙1.寫入數(shù)據(jù)完畢(結(jié)果 為 整數(shù)型)
如果 結(jié)果 = 1 則
彈出提示("寫入數(shù)據(jù)成功")
否則
彈出提示("寫入數(shù)據(jù)失敗")
結(jié)束 如果
結(jié)束 事件
事件 列表框1.表項被單擊(項目索引 為 整數(shù)型)
設備地址 = 列表框1.取項目標記(項目索引)
BLE藍牙1.連接設備(設備地址)
'BLE 藍牙 1.連接設備(列表框 1.取項目標記(項目索引))
彈出提示("正在連接")
連接狀態(tài).標題 = "正在連接"
結(jié)束 事件
事件 上.被單擊()
BLE藍牙1.寫入數(shù)據(jù)(服務UUID,通道UUID,文本到字節(jié)("上\n","GBK"))
結(jié)束 事件
事件 左.被單擊()
BLE藍牙1.寫入數(shù)據(jù)(服務UUID,通道UUID,文本到字節(jié)("左\n","GBK"))
結(jié)束 事件
事件 右.被單擊()
BLE藍牙1.寫入數(shù)據(jù)(服務UUID,通道UUID,文本到字節(jié)("右\n","GBK"))
結(jié)束 事件
事件 下.被單擊()
BLE藍牙1.寫入數(shù)據(jù)(服務UUID,通道UUID,文本到字節(jié)("下\n","GBK"))
結(jié)束 事件
事件 讀取.被單擊()
BLE藍牙1.讀取數(shù)據(jù)(服務UUID,通道UUID)
結(jié)束 事件
事件 清空.被單擊()
接收框.內(nèi)容 = 空
結(jié)束 事件
事件 接收框.內(nèi)容被改變(新內(nèi)容 為 文本型)
結(jié)束 事件
事件 接收框.創(chuàng)建完畢()
接收框.置多行模式(真)
結(jié)束 事件
事件 發(fā)送.被單擊()
BLE藍牙1.寫入數(shù)據(jù)(服務UUID,通道UUID,文本到字節(jié)(發(fā)送框.內(nèi)容,"GBK"))
結(jié)束 事件
事件 斷開連接.被單擊()
BLE藍牙1.斷開連接()
結(jié)束 事件
|