V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ky1e
V2EX  ›  Android

如何快速的开发一个安卓上的 HTTP 响应 APP 小应用

  •  
  •   ky1e · 2023-04-15 09:47:02 +08:00 · 9802 次点击
    这是一个创建于 590 天前的主题,其中的信息可能已经有所发展或是发生改变。

    大概需求如下:

    1. APP 能自启动常驻安卓手机监听端口 9999 的 HTTP GET 请求: "http://127.0.0.1:9999/msg/<msgcontent>"
    2. 接受到该 HTTP 请求后在安卓手机弹出一个信息提示,内容接收到的字符串:<msgcontent>
    3. 再向另一个接口,发出 request.get 请求:"http://www.myanotherip.net:9999/msg/<msgcontent>"

    在 python 用 flask 很好实现,但从没做过安卓开发,不知道有没有快速的开发方法,比如用.net core 的 moon 有没有办法快速实现,本人比较小白,望各位大佬赐教。

    26 条回复    2023-04-16 13:52:41 +08:00
    cxtrinityy
        1
    cxtrinityy  
       2023-04-15 09:53:43 +08:00 via Android   ❤️ 1
    这东西没什么难,搜下 Java 或 kotlin 建个 service 写几行监听 http 请求的代码就好了,看你这描述我觉得你应该不了解 Android 项目的整个结构,这是最费时间的
    winterbells
        2
    winterbells  
       2023-04-15 09:54:41 +08:00 via Android
    https://github.com/yanzhenjie/AndServer
    加 star 很久了,但还没用过
    ly841000
        3
    ly841000  
       2023-04-15 09:55:00 +08:00
    这么简单的需求 直接用 socket 实现也就几十行代码的事吧?
    noahhhh
        4
    noahhhh  
       2023-04-15 09:55:15 +08:00 via Android
    tasker 配合支持的 vpn 就能实现了吧
    tomczhen
        5
    tomczhen  
       2023-04-15 09:57:44 +08:00 via Android
    用 automate 或者 tasker 主动轮询去拉取更容易一些。
    cyningxu
        6
    cyningxu  
       2023-04-15 10:14:04 +08:00
    用开源库就几行代码的事
    kingfalse
        7
    kingfalse  
       2023-04-15 10:15:25 +08:00 via Android
    nanohttpd
    renmu
        8
    renmu  
       2023-04-15 11:08:45 +08:00 via Android
    然后发现最难的是保活
    infun
        9
    infun  
       2023-04-15 11:16:16 +08:00 via Android
    termux 可以读短信 可以弹窗 可以常驻后台
    infun
        10
    infun  
       2023-04-15 11:17:08 +08:00 via Android
    @infun 在 termux 里面起 python 代码并调用 termux 的 API
    你说的需求可以搞定
    maokabc
        11
    maokabc  
       2023-04-15 11:30:24 +08:00 via Android
    实现过类似的,http 来进行文件分享,nanohttpd 加上一个前台 service
    deng81416754
        12
    deng81416754  
       2023-04-15 11:34:46 +08:00
    作为 Android 开发 只会 cv 的 自从系统没有开机广播以后 就不知道如何开机启动了 保活倒是有一些方案,如果开机能解决 那剩下的 应该都很好办
    whyrookie
        13
    whyrookie  
       2023-04-15 12:31:50 +08:00
    现在保活应该是没有可靠的了
    rocmax
        14
    rocmax  
       2023-04-15 12:55:28 +08:00 via Android
    ifttt ?
    wooi
        15
    wooi  
       2023-04-15 12:56:34 +08:00
    难点在于保活,除非设备已经 Root 可以提权到管理权限。还有一种方法,接第三方通知推送服务,更简单直接
    nathansw
        16
    nathansw  
       2023-04-15 14:21:07 +08:00
    @wooi 系统是 MIUI ,接了小米推送,然后各种自启动,后台无限制都加了。一样收不到通知,要打开 APP 才收的到。
    paopjian
        17
    paopjian  
       2023-04-15 15:18:00 +08:00
    保活反而是最难弄的,无数人绞尽脑汁就为了越过各种 UI/OS 整的电源策略
    wooi
        18
    wooi  
       2023-04-15 15:35:16 +08:00
    @nathansw 这种问题还是找小米的官方文档,只可能是配置或者你接入的问题
    lijunjieone
        19
    lijunjieone  
       2023-04-15 15:38:10 +08:00
    看上去是自己用,可以做成前台服务,自动就保活了。
    lixinrui000
        20
    lixinrui000  
       2023-04-15 15:47:32 +08:00
    我之前恰好也有一个一模一样的需求,寻求 Python 直接运行无果,最后也只好用原生代码硬写了。
    Yourshell
        21
    Yourshell  
       2023-04-15 16:54:49 +08:00
    为什么不问问 ChatGPT 呢
    nathansw
        22
    nathansw  
       2023-04-15 17:34:22 +08:00
    @wooi MIUI13 没问题,到 14 就出问题了
    wangwenzhi
        23
    wangwenzhi  
       2023-04-15 17:51:00 +08:00
    ChatGPT 的回答:

    您可以使用 Java 开发 Android 应用程序,并使用 Android 自带的网络 API 实现 HTTP 请求和响应。下面是实现该需求的一些步骤:

    创建一个 Android 应用程序,并在 Manifest 文件中添加网络访问权限。

    创建一个 Service 并实现 onStartCommand 方法,这个 Service 将监听端口 9999 并接受 HTTP GET 请求。

    使用 Android 自带的 HttpServer 类来创建一个 HttpServer ,并使用 HttpServer.createContext() 方法来设置请求处理程序。

    在请求处理程序中解析 HTTP 请求并获取其中的消息内容,然后使用 Android 自带的 Notification 类在 Android 设备上显示通知。

    使用 Android 自带的 HttpURLConnection 类来发送 GET 请求到另一个接口。

    在处理完请求后,发送 HTTP 响应并关闭连接。

    在应用程序中添加网络访问权限和服务声明,并在 MainActivity 中启动 Service 。

    使用 .NET Core 开发该应用程序可能需要更多的学习和开发成本,因为您需要学习如何使用 Xamarin 或其他相关技术来开发 Android 应用程序。而且,由于 .NET Core 并不是 Android 开发的首选语言和平台,因此可能会面临一些挑战。因此,我建议您使用 Java 和 Android 开发工具来实现该需求。
    fanfpy
        24
    fanfpy  
       2023-04-15 23:18:41 +08:00 via iPhone
    感觉可以拿 autojs 或者 hamibot 试试 感觉用这个实现最快
    fanfpy
        25
    fanfpy  
       2023-04-15 23:19:46 +08:00 via iPhone
    autojs 好像还可以打包成独立 app
    PRStarDust
        26
    PRStarDust  
       2023-04-16 13:52:41 +08:00
    我之前就想用这个做双向剪贴板同步……
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3572 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 10:57 · PVG 18:57 · LAX 02:57 · JFK 05:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.