两个 ANDROID APP 直接通过 USB 来验证,方案可行? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
mx3y
V2EX    Android

两个 ANDROID APP 直接通过 USB 来验证,方案可行?

  •  
  •   mx3y 2018-01-30 15:42:04 +08:00 14042 次点击
    这是一个创建于 2893 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有两个设备都装的有 ANDROID 系统,都带有 USB 口,目前拟定了一个场景,A 设备里的 APP 运行,一直监听 USB 口 当 A 设备的 USB 插上线并且另外一端插在 B 设备上,B 设备的 APP 通过 USB 和 A 设备的 APP 进行验证通信。

    由于不是专业做 ANDROID,Java 转过来的,请教几个问题: 1.这种场景的设定可行吗 2.有没有相关资料或者技术原型以参考

    22 条回复    2018-02-08 21:53:07 +08:00
    whileFalse
        2
    whileFalse  
       2018-01-30 16:17:00 +08:00
    你的目的是什么?
    mx3y
        3
    mx3y  
    OP
       2018-01-30 16:26:26 +08:00
    @whileFalse 要申请证书,如果两个设备没连接就需要申请两个太麻烦了。所以出此下策,让 B 设备不连接 A 设备,B 设备的 APP 就无法使用
    podel
        4
    podel  
       2018-01-30 16:50:04 +08:00
    唔,n 久以前倒是试过在一台手机上用 adb 连接另外一台手机。(前提是启用了 usb 调试模式)(需不需要 root 不清楚,我是以 root 运行的,但是 adb 实际上是不需要 root 的)。
    whileFalse
        5
    whileFalse  
       2018-01-30 17:31:26 +08:00
    @mx3y #3 能详细说说么。为啥一定通过 usb 通讯,网络通讯不行么。
    mx3y
        6
    mx3y  
    OP
       2018-01-30 17:49:10 +08:00
    @whileFalse 主要还是两个方面:
    1.那个证书,是医疗类的证件,如果硬件部分没东西连接,那就算俩硬件,需要申请俩证书
    2.运行情况制约,因为是单机使用,没有网络的。
    mx3y
        7
    mx3y  
    OP
       2018-01-30 17:49:57 +08:00
    @podel 两端都是 USB 口吗
    mx3y
        8
    mx3y  
    OP
       2018-01-30 17:52:06 +08:00
    @icedx 翻墙了也打不开噢,感谢您的回复
    Karblue
        9
    Karblue  
       2018-01-30 18:18:29 +08:00
    俩 APP 都检测 USB 口。 然后 WIFI 内通信或者蓝牙直连通信。可以的
    pagxir
        10
    pagxir  
       2018-01-30 18:54:47 +08:00 via Android
    @mx3y 听你说打不开,强迫症的我点了下,发现你说的话是假的。
    XinLake
        11
    XinLake  
       2018-01-30 19:32:43 +08:00
    看了楼主要恶补一下 USB (通用串行总线)技术原理。

    USB 口严格来说不是通信意义上的接口,USB 是用来扩展设备的。并且是主从模式,必须一个主机( Master ),一个从机( Slave ),所有的动作都是主机主动发起,不存在监听、检测一说。
    U 盘插到电脑,电脑多出 U 盘,OS 多了个海量存储设备,OS 是主,U 盘是从。
    你手机 USB 调试插到电脑,电脑多出个 Android 设备(还有其他的),电脑是主,手机是从。

    你要 2 个 APP 通信,其中一方必须要吧 USB 设置为主( USB 支持 OTG 才行),通讯是主主动发起,另外一方听命令就行。不是“网络连接”模式的通讯。

    设想的场景很难实现
    ljbha007
        12
    ljbha007  
       2018-01-30 19:47:21 +08:00
    其中一台有 USB host 芯片或者 USB OTG 内核模块是可以的 不一定要用谷歌那个 ADK 你自己用 C 写个驱动用 JNI 来调用都可以的
    tempdban
        13
    tempdban  
       2018-01-30 19:52:30 +08:00
    @XinLake 一个做 usb host 一个开调试模式开
    host 端开 adb 端口转发
    想法太局限了。
    podel
        14
    podel  
       2018-01-31 10:00:33 +08:00
    @mx3y 是的 两个都是 usb 只不过一个主(OTG 模式) 一个从。
    mx3y
        15
    mx3y  
    OP
       2018-01-31 17:41:16 +08:00
    @Karblue 如楼上各位同学所说,担心主从的问题
    mx3y
        16
    mx3y  
    OP
       2018-01-31 17:41:35 +08:00
    @pagxir 哈哈,可能我人品差,老被墙
    mx3y
        17
    mx3y  
    OP
       2018-01-31 17:42:12 +08:00
    @XinLake 感谢您回复,在硬件支持的情况下,可以实现吗,一方设置为 OTG 模式,一方设置为开发者模式?
    mx3y
        18
    mx3y  
    OP
       2018-01-31 17:42:33 +08:00
    @ljbha007 另外一台有要求吗,求大神赐教
    mx3y
        19
    mx3y  
    OP
       2018-01-31 17:43:14 +08:00
    @tempdban 这样就可实现吗,两个都是 USB 口吗
    mx3y
        20
    mx3y  
    OP
       2018-01-31 17:43:25 +08:00
    @podel 感谢您
    XinLake
        21
    XinLake  
       2018-01-31 18:51:41 +08:00
    @mx3y USB 硬件很多都支持 OTG,但是你的设想很难。

    两个设备通过 USB 连接上以后,HOST APP 通讯的是一个 USB 设备,APP 和这个设备通讯都有规范,USB 设备连上 HOST 之后 USB 接口就透明了。

    说白了,USB 不是提供一个连接,而是给主机拓展了一个设备。

    假设 2 个设备分为 A B,假如 A 作为 HOST,B 作为 U 盘(海量存储设备)。此时 A 的 APP 能够访问 B,但只是基于 USB 设备协议规范上的通信,设备有啥功能只能用啥功能。如果要实现 2 个 APP 通信,可以设想一下 B 写个文件到存储区,然后 A 在读取这个文件,这样如果你觉得适合就可以。
    sungykk
        22
    sungykk  
       2018-02-08 21:53:07 +08:00
    提供一个相关原型:
    汽车中控上的手机互联就是和这个类似,导航车机端运行 Android , 手机可以是 ios 或者 android, 通过 usb 线和车机连接。连 ios 时车机端要切换成 device 模式,android 手机的话车机端要切换成 host。
    两端都安装手机互联 app, 通过 adb + socket 的方式通信。连接鉴权成功后手机的画面会通过 usb 传输投射到车机端上。
    之前做过一个项目是利用百度 carlife app 实现通信的,但是 Linux 平台还要移植 adb,android 平台应该更简单。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1961 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 00:34 PVG 08:34 LAX 16:34 JFK 19:34
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86