gpt4 book ai didi

python - 从蓝牙设备获取响应

转载 作者:行者123 更新时间:2023-11-28 16:55:08 24 4
gpt4 key购买 nike

我正在尝试编写一个能够发送短信的简单模块。我使用蓝牙通过以下示例连接到手机:

文件: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 channel ,并希望它会神奇地接受 AT 命令并进行消息传递。

我认为(我可能是错的)你需要连接到一个特定的配置文件/服务 channel ,我认为对于 SMS,它是消息访问配置文件 (MAP),它还没有标准化,所以找到一个电话继续,好吧,我不会说不可能,但非常非常不可能。否则,某些手机将支持用于消息传递的 AT 命令,但这不在规范范围内,例如我确信 Sony-Ericson 手机将通过拨号网络配置文件 (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 码),我还没有弄清楚该怎么做!

参见 www.bluetooth.org满足您所有的蓝牙需求!

关于python - 从蓝牙设备获取响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/934460/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com