python调用电脑蓝牙_python-从蓝牙设备获取响应
我正在嘗試編寫一個簡單的模塊來啟用發送SMS的功能.我使用藍牙通過以下示例連接到手機:
文件:bt-sendsms.py
import bluetooth
target = '00:32:AC:32:36:E8' # Mobile address
print "Trying to send SMS on %s" % target
BTSocket = bluetooth.BluetoothSocket(bluetooth.RFCOMM)
BTSocket.connect((target, 2)) # BT Address
BTSocket.send('ATZ\r')
BTSocket.send('AT+CMGF=1\r')
#sockfd.send('AT+CSCA="+972547716507"\r') # This line changes the SMSC address - do not modify unless required
BTSocket.send('AT+CMGS="+972547877763"\r') # TO Phone Number
BTSocket.send('This is a test message - port 2.\n')
BTSocket.send(chr(26)) # CTRL+Z
print "SMS sent"
sockfd.close()
print "Closed"
我的問題是我無法驗證或獲取SMS發送或任何套接字操作的錯誤代碼.
任何推薦給正確方向的人將不勝感激
解決方法:
從Python看來,您正在打開任何舊的RFCOMM通道,希望它能神奇地采用AT命令并進行消息傳遞.
我認為(可能是錯誤的),您需要連接到特定的配置文件/服務通道,并且我認為對于SMS來說,它是消息傳遞配置文件(MAP),該文件尚未標準化,因此要查找裝有它的電話,好吧,我不會說不可能,但是非常非常不可能.否則,某些手機將支持AT指令進行消息傳遞,但這超出了規范,例如我擁有通過撥號網絡配置文件(DUN)支持索尼愛立信電話的權限.
因此,首先,您的移動設備是否支持某些SMS規范AT命令,如果是,則支持某個配置文件或臨時專有文件?接下來,您需要連接到該配置文件.
您可以使用以下Python瀏覽受支持的服務等…(檢查所有周圍的BT設備)…
import bluetooth
def whats_nearby():
name_by_addr = {}
nearby = bluetooth.discover_devices(flush_cache=True)
for bd_addr in nearby:
name = bluetooth.lookup_name( bd_addr, 5)
print bd_addr, name
name_by_addr[bd_addr] = name
return name_by_addr
def what_services( addr, name ):
print " %s - %s" % ( addr, name )
for services in bluetooth.find_service(address = addr):
print "\t Name: %s" % (services["name"])
print "\t Description: %s" % (services["description"])
print "\t Protocol: %s" % (services["protocol"])
print "\t Provider: %s" % (services["provider"])
print "\t Port: %s" % (services["port"])
print "\t service-classes %s" % (services["service-classes"])
print "\t profiles %s" % (services["profiles"])
print "\t Service id: %s" % (services["service-id"])
print ""
if __name__ == "__main__":
name_by_addr = whats_nearby()
for addr in name_by_addr.keys():
what_services(addr, name_by_addr[addr])
找到正確的服務/配置文件后,您的下一個問題將是協商安全性(用于配對的PIN碼),我還沒有弄清楚該怎么做!
標簽:mobile-phones,sms,bluetooth,python
總結
以上是生活随笔為你收集整理的python调用电脑蓝牙_python-从蓝牙设备获取响应的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 5599 元起,华硕灵耀 14 2023
- 下一篇: python爬取国内代理ip_Pytho