Android平台到底能不能通过串口发送AT指令呢,急!!! 80

想在android平台上做一些向串口发at指令的操作。首先,在java层好像没有提供和串口操作相关的api(如果有的话请指教,谢谢)于是,想到了用JNI配合NDK的方法来... 想在android平台上做一些向串口发at指令的操作。

首先,在java层好像没有提供和串口操作相关的api(如果有的话请指教,谢谢)

于是,想到了用JNI配合NDK的方法来实现,在底层用C/C++直接对linux的串口编程

其中必需的一步是先打开串口 fd=open( "/dev/ttyS0", O_RDWR|O_SYNC),"/dev/ttyS0"为串口文件

但是在linux下,/dev/ttyS0这个串口文件是只有root用户才有权限操作,而我们所开发的android应用程序只能作为普通用户去访问,自然不会成功的。

在PC上用模拟器调试的时候,可以以root用户身份登录到linux系统并用chmod的命令修改/dev/ttyS0的权限为所有用户可读写,命令格式是 chmod 777 /dev/ttyS0,但是在真机上用的话不可能每次都去手动先把/dev/ttyS0访问权限改了

想通过代码的方式直接修改/dev/ttyS0的访问权限或者把android应用程序自身的权限提升为root,网上看了很多方法都不能,想想也是,要是随便通过代码就能修改,那么linux和android平台还有什么安全可言,以后谁还敢用呢?高手们谁知道怎么解决这个问题呢?或者有其他方法也能实现android平台向串口发at指令也行,但是比如那些通过软件去刷机借用外力把手机刷成root的方法就不要提了,用户用你的程序之前不可能先去让他刷机的。

比较急,谢谢各位!
展开
 我来答
QQMSD8
2015-09-01 · 知道合伙人软件行家
QQMSD8
知道合伙人软件行家
采纳数:6788 获赞数:13239
没有做不到,只有想不到,帮助别人的同时也是对自己的提升

向TA提问 私信TA
展开全部

AT命令(Attention)在手机中,用于对modem(也就是移动模块)通过串口命令进行操作,处理与语音电话、短信和数据。

关于AT命令:

  1. Android系统与AT命令

    对于智能手机,AP和BP分离的情况,在AP上的系统通过串口和BP通信是个不错方式。在Android的源码中有一个内部包com.android.internal.telephony中有对AT命令的封装和解析,但这种internal的包开发者不能调用的SDK部分,可以用来封装ROM。这说明Android对AT command的方式是支持的。

  2. 对于Android如何调用AT command

    用root登录命令行,直接对串口进行操作,如echo -e "AT\r" > /dev/smd0

    具体的串口,不同设备会有不同,甚至不一定会提供。这种方式,开发者是可以调用的,通过Runtime.exec直接执行命令行命令,但要求是root,例如echo -e "ATD123456789;\r" > /dev/smd0,拨打123456789的号码。

  3. 目前最新的AT命令标准发布与2014.6.27,似乎还活得挺滋润的。但是给出的keywords是UMTS, GSM, command, terminal, LTE这说明CDMA确实很可能不是采用AT命令的方式。

百度网友56b207b
2011-10-17
知道答主
回答量:15
采纳率:0%
帮助的人:2.4万
展开全部
肯定能,3G功能一般都是通过向串口发送AT命令、等待AT命令回应来实现的。
追问
我现在是想自己在android上开发一个应用程序,里面要用到串口at指令的操作,不知道可行吗?权限够吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dontsay想你
2011-10-19
知道答主
回答量:27
采纳率:0%
帮助的人:21.3万
展开全部
持续关注
我想向楼主请教一下我现在遇到的问题。因为现在还是程序调试,关于权限的我按照楼主的方法改了,这个不管
我有一个c语言测试程序能向串口发信息,但是把C语言改成jni后,能够编译成.so文件,能够打开串口,能够返回write的返回值,但是超级终端没有显示发出的信息,而用c测试代码是能够显示发出信息的。是什么原因呢,楼主知道吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ocen713
2011-10-17 · TA获得超过314个赞
知道小有建树答主
回答量:278
采纳率:0%
帮助的人:350万
展开全部
肯定是可以通过串口发送的。android里面3g和模块的通信是走的这个通道;
如果你的程序必须通过mmm编译,然后在你的mk里面,修改LOCAL_CERTIFICATE参数,调整你自己程序或者编译出bin文件的权限;
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
妙法化城
2012-03-09
知道答主
回答量:24
采纳率:0%
帮助的人:10.6万
展开全部
请问楼主用的那款手机?
至于权限 用c写的话好像不存在root不roo。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式