在Android Q上,由于隐私和安全性的增强,访问剪贴板的方式发生了变化。现在需要使用新的API来实现剪贴板的功能。
下面是一个示例代码,可以在Android Q上使用新的API来访问剪贴板。
import android.content.ClipData;
import android.content.ClipboardManager;
import android.content.Context;
public class ClipboardHelper {
public static void copyToClipboard(Context context, String text) {
ClipboardManager clipboard = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);
ClipData clip = ClipData.newPlainText("label", text);
clipboard.setPrimaryClip(clip);
}
public static String getFromClipboard(Context context) {
ClipboardManager clipboard = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);
ClipData clip = clipboard.getPrimaryClip();
if (clip != null && clip.getItemCount() > 0) {
ClipData.Item item = clip.getItemAt(0);
return item.getText().toString();
}
return null;
}
}
使用方法如下:
// 将文本复制到剪贴板
ClipboardHelper.copyToClipboard(context, "Hello World");
// 从剪贴板获取文本
String text = ClipboardHelper.getFromClipboard(context);
请确保在AndroidManifest.xml文件中添加以下权限:
同时,在Android Q上,您还需要请求运行时权限来访问剪贴板。
希望这可以帮助您解决在Android Q上ClipboardManager无法工作的问题!