复制/粘贴功能曾经在我的应用程序中起作用。但是,一旦我升级了我的应用软件开发工具包,以Android 10为目标,它就无法获得正确的数据。例如:如果我从chrome复制" Hello“,打开我的应用程序并粘贴它,Hello就会被粘贴。现在,如果我在没有杀死我的应用程序的情况下进入chrome,复制"World",打开我的应用程序并粘贴,"Hello“就会被粘贴。
在Android10中有一些与隐私相关的变化:https://developer.android.com/about/versions/10/privacy/changes#clipboard-data
我的onPrimaryClipChanged()回调在Android10上没有触发,我的应用程序也升级了SDK。
对此有什么解决方案,请提个建议?
发布于 2019-11-07 13:56:41
只有一个解决方案:请求权限android.permission.READ_LOGS,然后使用logcat或dumpsys命令获取剪贴板。此权限必须通过ADB授予。
发布于 2020-01-09 01:35:37
正如您已经提到的,由于操作系统升级,您正面临此问题。但是,您可以通过向ADB请求特殊权限来解决此问题。
它可以按如下方式完成:
在您的电话上启用开发人员模式
,然后依次键入以下内容-
(on windows)
adb -d shell appops set <package name> SYSTEM_ALERT_WINDOW allow
adb shell pm grant <package name> android.permission.WRITE_SECURE_SETTINGS
adb shell pm grant <package name> android.permission.READ_LOGS
adb shell am force-stop <package name>
(on mac)
./adb -d shell appops set <package name> SYSTEM_ALERT_WINDOW allow
./adb shell pm grant <package name> android.permission.WRITE_SECURE_SETTINGS
./adb shell pm grant <package name> android.permission.READ_LOGS
./adb shell am force-stop <package name><package name>是开发代码中定义的根包名称。它将类似于com.example.myapp。
https://stackoverflow.com/questions/58727690
复制相似问题