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

请问,输入法的粘贴功能是用了什么系统 api 吗?

  •  
  •   GSNote · 2022-01-16 11:17:11 +08:00 · 10968 次点击
    这是一个创建于 1068 天前的主题,其中的信息可能已经有所发展或是发生改变。

    以讯飞输入法为例,点击一个条目,粘贴到其他软件的光标处。如果自己开发一个剪贴板应用,该怎么做到这一点吗?或者只有输入法才能做到这点?

    10 条回复    2022-01-17 09:12:01 +08:00
    jinyang656
        1
    jinyang656  
       2022-01-16 11:20:49 +08:00 via Android
    GSNote
        2
    GSNote  
    OP
       2022-01-16 11:40:34 +08:00
    @jinyang656 我有看过这篇文档。它表达的意思应该是在当前程序中(例如笔记程序)主动触发粘贴,而不是在输入法上触发粘贴后粘贴到笔记程序中。
    lucybenz
        3
    lucybenz  
       2022-01-16 13:10:50 +08:00
    @GSNote 应用程序发起粘贴动作 不就是读取剪贴板中数据么,读取回来自己放到适合的地方; 就像很多 app 启动时读取剪贴板 看看有没有带着口令来
    halfdb
        4
    halfdb  
       2022-01-16 13:44:22 +08:00 via Android   ❤️ 1
    楼主说的其实和粘贴没什么关系,楼主想知道的是一个 App 如何在另一个 App 的文本框中输出文字。不了解安卓,我感觉应该是输入法才有的功能
    ikas
        5
    ikas  
       2022-01-16 13:51:56 +08:00
    无非就是在什么时候读系统剪贴板 api,像输入法这样的常驻进程,只要有输入的地方,它自然可以去读一下..

    如果不用输入法这样类型,自己写一个,只要想一个触发方式即可....

    实际给第三方输入法开剪贴板权限,简直就是给人家送隐私
    ohwind
        6
    ohwind  
       2022-01-16 14:42:45 +08:00
    如果你是指输入法,那么输入法本身就可以往第三方 app 里填充数据,它只需要读取剪切板即可。
    如果你是指非输入法应用往第三方 app 填充数据,那么你需要"Autofill framework "
    https://developer.android.com/guide/topics/text/autofill
    ohwind
        7
    ohwind  
       2022-01-16 14:45:14 +08:00
    @halfdb 安卓现在有自动填充服务,我写了个自用的密码管理器,就是通过此功能实现的
    janus77
        8
    janus77  
       2022-01-16 16:05:41 +08:00
    粘贴=输入文字。不要想复杂了兄弟,这就跟 print 差不多
    yukiww233
        9
    yukiww233  
       2022-01-16 19:37:51 +08:00
    2i2Re2PLMaDnghL
        10
    2i2Re2PLMaDnghL  
       2022-01-17 09:12:01 +08:00
    输入法可以触发目标程序的粘贴事件,具体不明
    我的输入法是小鹤,但它的粘贴功能不依赖它自己的剪贴板权限,而依赖于被粘贴的软件(比如浏览器)的剪贴板权限( App Ops 设置的权限)
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3185 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 12:32 · PVG 20:32 · LAX 04:32 · JFK 07:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.