如何防止一个应用程序剪贴板文本被另一个应用程序在后台读取 Android
How to prevent one application clipboard text which reads by another app in background Android
我正在 Edittext 中创建具有复制和粘贴功能的应用程序。其中有一些安全文本,需要防止其他应用程序从剪贴板读取。
是否可以防止我们的文本被其他可能 运行 在后台和监听剪贴板的应用程序从剪贴板读取。
不,对不起。剪贴板是世界可读的。
您可以使用剪贴板管理器并添加一个侦听器,以便在每次有人更改剪贴板时将其变为空白。操作方法如下:
private ClipboardManager clipboardManager;
private ClipboardManager.OnPrimaryClipChangedListener clipChangeListener;
clipboardManager = (ClipboardManager)ActivityName.this.getSystemService(Context.CLIPBOARD_SERVICE);
clipChangeListener = new ClipboardManager.OnPrimaryClipChangedListener() {
@Override
public void onPrimaryClipChanged() {
clipboardManager.setPrimaryClip(ClipData.newPlainText("", ""));
}
};
clipboardManager.addPrimaryClipChangedListener(clipChangeListener);
请务必在 onPause
或 onDestroy
上删除剪贴板侦听器
if (clipboardManager != null && clipChangeListener != null) {
clipboardManager.removePrimaryClipChangedListener(clipChangeListener);
}
我正在 Edittext 中创建具有复制和粘贴功能的应用程序。其中有一些安全文本,需要防止其他应用程序从剪贴板读取。 是否可以防止我们的文本被其他可能 运行 在后台和监听剪贴板的应用程序从剪贴板读取。
不,对不起。剪贴板是世界可读的。
您可以使用剪贴板管理器并添加一个侦听器,以便在每次有人更改剪贴板时将其变为空白。操作方法如下:
private ClipboardManager clipboardManager;
private ClipboardManager.OnPrimaryClipChangedListener clipChangeListener;
clipboardManager = (ClipboardManager)ActivityName.this.getSystemService(Context.CLIPBOARD_SERVICE);
clipChangeListener = new ClipboardManager.OnPrimaryClipChangedListener() {
@Override
public void onPrimaryClipChanged() {
clipboardManager.setPrimaryClip(ClipData.newPlainText("", ""));
}
};
clipboardManager.addPrimaryClipChangedListener(clipChangeListener);
请务必在 onPause
或 onDestroy
if (clipboardManager != null && clipChangeListener != null) {
clipboardManager.removePrimaryClipChangedListener(clipChangeListener);
}