从Python中,你看起来像是在打开任何旧的RFCOMM通道,并希望它能神奇地接收AT命令并进行消息传递。
我认为(我可能错了)你需要连接到一个特定的配置文件/服务频道,我认为对于短信来说,它是消息访问配置文件(MAP),它还没有标准化,所以找到一部有它的手机,我不会说不可能,但非常不可能。否则,一些手机将支持AT命令进行消息传递,但这超出了规格范围,例如,我得到授权,索尼爱立信手机将通过拨号网络配置文件(DUN)支持它。
那么,首先,你的移动设备是否支持一些不符合规范的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
满足您所有的蓝牙需求!