SL4A客户端Python服务器(SL4A client Python server)

概要

我想在Android Phone作为客户端和Python作为服务器之间建立蓝牙连接。 请帮帮我,我无法弄清楚。 服务器端必须在PC上使用Python。 我需要Python代码作为服务器,而Sl4A可以连接到这台PC。 我尝试了很多代码,但没有让它工作。

SL4A Bluetooth_chat.py

import android

import time

droid = android.Android()

droid.toggleBluetoothState(True)

droid.dialogCreateAlert('Be a server?')

droid.dialogSetPositiveButtonText('Yes')

droid.dialogSetNegativeButtonText('No')

droid.dialogShow()

result = droid.dialogGetResponse()

is_server = result.result['which'] == 'positive'

if is_server:

droid.bluetoothMakeDiscoverable()

droid.bluetoothAccept()

else:

droid.bluetoothConnect()

if is_server:

result = droid.dialogGetInput('Chat', 'Enter a message').result

if result is None:

droid.exit()

droid.bluetoothWrite(result + '\n')

while True:

result = droid.dialogGetInput('Chat', 'Enter a message').result

if result is None:

break

droid.bluetoothWrite(result + '\n')

droid.exit()

我的答案

import requests

from bluetooth import *

server_sock=BluetoothSocket( RFCOMM )

server_sock.bind(("",PORT_ANY))

server_sock.listen(1)

port = server_sock.getsockname()[1]

uuid = "94f39d29-7d6d-437d-973b-fba39e49d4ee"

advertise_service( server_sock, "SampleServer",

service_id = uuid,

service_classes = [ uuid, SERIAL_PORT_CLASS ],

profiles = [ SERIAL_PORT_PROFILE ],

# protocols = [ OBEX_UUID ]

)

print("Waiting for connection on RFCOMM channel %d" % port)

client_sock, client_info = server_sock.accept()

print("Accepted connection from ", client_info)

try:

while True:

data = client_sock.recv(1024)

if len(data) == 0: break

print("received [%s]" % data)

params=userdata)

except IOError:

pass

print("disconnected")

client_sock.close()

server_sock.close()

print("all done")

Summary

I want a Bluetooth connection between an Android Phone as client and Python as server. Please help me I can't figure it out. Server side must be on PC with Python. I need Python code as server and Sl4A can connect to this PC. I tried a lot of code but didn't get it to work.

SL4A Bluetooth_chat.py

import android

import time

droid = android.Android()

droid.toggleBluetoothState(True)

droid.dialogCreateAlert('Be a server?')

droid.dialogSetPositiveButtonText('Yes')

droid.dialogSetNegativeButtonText('No')

droid.dialogShow()

result = droid.dialogGetResponse()

is_server = result.result['which'] == 'positive'

if is_server:

droid.bluetoothMakeDiscoverable()

droid.bluetoothAccept()

else:

droid.bluetoothConnect()

if is_server:

result = droid.dialogGetInput('Chat', 'Enter a message').result

if result is None:

droid.exit()

droid.bluetoothWrite(result + '\n')

while True:

result = droid.dialogGetInput('Chat', 'Enter a message').result

if result is None:

break

droid.bluetoothWrite(result + '\n')

droid.exit()

MY ANSWER

import requests

from bluetooth import *

server_sock=BluetoothSocket( RFCOMM )

server_sock.bind(("",PORT_ANY))

server_sock.listen(1)

port = server_sock.getsockname()[1]

uuid = "94f39d29-7d6d-437d-973b-fba39e49d4ee"

advertise_service( server_sock, "SampleServer",

service_id = uuid,

service_classes = [ uuid, SERIAL_PORT_CLASS ],

profiles = [ SERIAL_PORT_PROFILE ],

# protocols = [ OBEX_UUID ]

)

print("Waiting for connection on RFCOMM channel %d" % port)

client_sock, client_info = server_sock.accept()

print("Accepted connection from ", client_info)

try:

while True:

data = client_sock.recv(1024)

if len(data) == 0: break

print("received [%s]" % data)

params=userdata)

except IOError:

pass

print("disconnected")

client_sock.close()

server_sock.close()

print("all done")

原文:https://stackoverflow.com/questions/36358930

更新时间:2020-02-17 09:37

最满意答案

尝试使用Google发布的SL4A和ACTS:

SL4A位置: aosp_root/external/sl4a

ACTS测试框架位置: aosp_root/tools/test/connectivity

在测试框架内有一个测试用例,可以帮助您了解BT

通过SPP进行测试: aosp_root/tools/test/connectivity/tests/google/bt/SppTest.py

Try using SL4A and ACTS that Google released:

SL4A location: aosp_root/external/sl4a

ACTS Test Framework Location: aosp_root/tools/test/connectivity

Within the test framework there is a testcase that can give you a start on BT

testing over SPP: aosp_root/tools/test/connectivity/tests/google/bt/SppTest.py

2016-05-04

相关问答

用SD卡啊。 复制到卡上,然后用文件管理器打开就可以了。 我以前在android, symbian上都安装过python。不过android上的python只是偶尔用过几次。

好的,所以我很难找到一个droid命令来写文件。 标准的Python open,write,read,close命令工作正常。 Ok, so I was silly to look for a droid command to write files. The standard Python open, write, read, close commands work fine.

我想你要把你的脚本嵌入一个apk上才行,看看维基吧: http://code.google.com/p/android-scripting/wiki/SharingScripts#Scripts_as_APKs

我决定写我自己的(见下面供参考)。 这可能会变得更好,欢迎任何建议。 import android, os, time

droid = android.Android()

# Specify root directory and make sure it exists.

base_dir = '/sdcard/sl4a/scripts/'

if not os.path.exists(base_dir): os.makedirs(base_dir)

def show_dir(path=base_

...

看来你需要的是蓝牙外观。 以下是一些可能对您有帮助的蓝牙命令: bluetoothAccept

bluetoothActiveConnections

bluetoothConnect

bluetoothDiscoveryCancel

bluetoothDiscoveryStart

bluetoothGetConnectedDeviceName

bluetoothGetLocalAddress

bluetoothGetLocalName

bluetoothGetRemoteDeviceName

bl

...

由于Android内核中缺少驱动程序, pyserial无法正常工作。 然而, sl4a内置USB主机串行支持,具有良好的兼容性 ( 此处为示例代码 )。 pyserial is not working due to missing drivers in the Android kernel. However sl4a has builtin USB Host Serial support with good compatibility (example code here).

首先将name值包装在按钮的引号中: TEST

其次,您需要将该button (以及任何其他输入)包装在该isset($_POST['test'])的表单中isset($_POST['test']) ,以便按预期提交:

...

在Python客户端中:您的提示包含\n但输入的结果不是? 尝试添加一个\n在发送之前进行test 。 In the Python client: Your prompt contains a \n but the result from input does not? Try adding a \n to test before sending.

尝试使用Google发布的SL4A和ACTS: SL4A位置: aosp_root/external/sl4a ACTS测试框架位置: aosp_root/tools/test/connectivity 在测试框架内有一个测试用例,可以帮助您了解BT 通过SPP进行测试: aosp_root/tools/test/connectivity/tests/google/bt/SppTest.py Try using SL4A and ACTS that Google released: SL4A lo

...

看看Python龙卷风http://www.tornadoweb.org/ 。 它实际上是一个非阻塞的Web服务器,并且您有一个WebSocketHandler对象,它可能对您想要执行的操作非常有用。 http://www.tornadoweb.org/en/stable/websocket.html 问候 have a look on Python tornado http://www.tornadoweb.org/. It is in fact a non-blocking webserver

...

sl4a库_SL4A客户端Python服务器(SL4A client Python server)相关推荐

  1. 虚拟机在客户端和服务器之间存在时间,Server 2012 Domain Controller上出现“客户端和服务器之间存在时间和/或日期差异”错误...

    是什么导致Server 2012设置BIOS时钟? 好吧,这就是它的作用. Linux也这样做,但是是的,您的操作系统可以并且将设置实时时钟以匹配其认为的时间. Regarding fixing th ...

  2. websocket客户端和服务器开发总结

    文章目录 前言 一.websocket资料 1.什么是websocket 2.websocket优缺点 3.WebSocket 原理 4.WebSocket 源码下载 二.客户端 1.开发 2.测试 ...

  3. socket编程-客户端向服务器发送字符串,传文件

    功能:分为客户端和服务器,client可向server传送字符串,传送文件. 环境:Ubuntu 编译方法: server.c: gcc  –o server server.c client.c:   ...

  4. Linux C语言实现TCP客户端与服务器

    本文中的TCP server 和 client,为基于软件层面(TCP/IP协议栈)的Socket应用开发. 一.Socket 套接字(socket)是一个抽象层,应用程序可以通过它发送或接收数据,可 ...

  5. 【愚公系列】2022年01月 MinIO文件存储服务器-客户端创建和桶操作(Python版)

    文章目录 一.python对接MinIO 1.首先执行命令安装包 2.创建客户端 3.桶操作 3.1 创建桶 3.2 查询桶 3.2.1 查询桶和判断桶是否存在 3.2.2 列出桶的对象信息 3.3 ...

  6. python常用单词读法-Python中常用英文单词大全

    原标题:Python中常用英文单词大全 application 应用程式 应用.应用程序 application framework 应用程式框架.应用框架 应用程序框架 architecture 架 ...

  7. jvm 参数-server_JVM选项:-client vs -server

    jvm 参数-server 您是否曾经在运行Java应用程序时想知道-client或-server开关是什么? 例如: javaw.exe -client com.blogspot.sdoulger. ...

  8. JVM选项:-client vs -server

    您是否曾经在运行Java应用程序时想知道-client或-server开关是什么? 例如: javaw.exe -client com.blogspot.sdoulger.LoopTest 也显示在j ...

  9. python3socket非阻塞_利用Python中SocketServer 实现客户端与服务器间非阻塞通信

    利用SocketServer模块来实现网络客户端与服务器并发连接非阻塞通信. 首先,先了解下SocketServer模块中可供使用的类: BaseServer:包含服务器的核心功能与混合(mix-in ...

  10. pythontcp服务器框架_tcp服务器简单框架-python客户端

    tcp服务端为C++代码,在Windows下实现,代码如下: // a TCP Server #define WIN32_LEAN_AND_MEAN #define _WINSOCK_DEPRECAT ...

最新文章

  1. LeetCode---------Longest Substring Without Repeating Characters解法
  2. 【Android开发日记】第一个任务Android Service!Service靴+重力感应器+弹出窗口+保持执行...
  3. 有三AI第一批10个研究小组上线
  4. 项目管理中可能有的问题,以及如何去面对!
  5. 算法代码_Python进化算法之多目标优化与代码实战
  6. iOS开发之Masonry框架-使用方法须知
  7. C语言(CED)输入一个任意长度的正整数,将该数逆序输出。
  8. WEB 端批量移动设备管理控制工具 STF 的环境搭建和运行
  9. 【LeetCode】开始LeetCode的第一题offer03
  10. java生成图表_java实现将数据生成图表至excel导出
  11. 8个成语接龙首尾相连_成语接龙该怎么接?每组开头有一个成语,要接龙,每一个词的末尾都是下一个词的开头,从 来日方长 到 取之不尽,中间要填8个...
  12. 好家伙!微软苏州 M365,上班时间打王者荣耀?
  13. C# Entity单条件查询与多条件查询
  14. EasyExcel注解方式校验数据行
  15. 世界各国大城市GDP排名
  16. 466. 回文日期 Java题解 (模拟)
  17. 十一道家常小菜详细攻略[图文并茂]
  18. java毕业实习报告范文3篇
  19. 安装ps显示无法连接到adobe服务器,Adobe系列软件Photoshop安装时提示“安装完成,下列产品的某些项目无法成功安装”错误的原因及解决方法...
  20. Python 列表解析 大文件

热门文章

  1. 计算机处理器性能排名,2020最新电脑cpu性能天梯图_i5i7i9处理器性能排行榜介绍...
  2. 应届生产品助理/经理面试,应当多谈点什么?
  3. 【经典】产品人面试中的一些软回答~~
  4. SSD模型物体检测(水下生物识别)
  5. ibus mozc 日文输入法
  6. 《七哥说道》第八章:约在410,北漂可还行?
  7. 空间相关性(1)——莫兰散点图
  8. 互联网中B端客户和C端客户的区别
  9. LeetCode 430. Flatten a Multilevel Doubly Linked List【链表/DFS/递归/迭代】中等
  10. 计算机文件丢失不能正常启动,电脑说文件丢失或损坏开不了机怎么办?