我想阻止我的Android应用程序的用户将数据从我的应用程序复制并粘贴到除应用程序本身之外的任何其他地方。鉴于剪贴板是公开敏感数据的更常见方式之一,我想知道是否有任何方法可以限制剪贴板的范围,使其只能在应用程序中使用?
我已经创建了一个解决方案来防止在应用程序的文本组件(TextView、EditText…(中复制/粘贴,但我正在寻找一种更有效的方法来解决这个问题。我一直在考虑在退出应用程序时清除剪贴板,但我不想这样做,因为用户可能有他/她想保留在剪贴板中的重要信息。
其他人以前也遇到过类似的情况吗?你对怎么做有什么想法吗?
谢谢!
这不是一个完整的解决方案,但您可以将复制和粘贴的使用限制为一次性使用。这样敏感数据就不会延迟。
public Class ClipboardUtils{
public static clear(Context context){
ClipboardManager clipBoard = (ClipboardManager) context.getSystemService(CLIPBOARD_SERVICE);
ClipData data = ClipData.newPlainText("", "");
clipBoard.setPrimaryClip(data);
}
}
有了编辑文本,你可以做一些类似的事情
EditText et = (EditText) mView.findViewById(R.id.yourEditText);
et.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (count > 2)
ClipboardUtils.clear(getContext());
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
public void afterTextChanged(Editable s) {}
});
来源
清除Android 中的剪贴板数据
安卓拦截粘贴\复制\剪切在editText