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