Android:如何停止屏幕截图或复制文本

时间:2016-01-06 09:36:45

标签: android

我想阻止用户将文本或图像从屏幕复制到任何文本编辑器。

另外,我想阻止拍摄活动的屏幕截图。

如何在Android中以编程方式执行此操作?

2 个答案:

答案 0 :(得分:4)

就屏幕截图而言 - 尝试使用FLAG_SECURE - 作为docs

  

窗口标记:将窗口内容视为安全,防止其出现在屏幕截图中或在非安全显示屏上显示。

您可以在Activity中使用它,如下所示:

public class NonScreenshotableActivity extends Activity {
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // Place this before setting layout but after calling super method
    getWindow().setFlags(LayoutParams.FLAG_SECURE,
                         LayoutParams.FLAG_SECURE);

    setContentView(R.layout.my_layout);

    //Rest of your activity code here
  }
}

您还可以使用以下内容停止复制/粘贴任何EditText字段:

yourEditText.setCustomSelectionActionModeCallback(new ActionMode.Callback() {

            public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
                return false;
            }

            public void onDestroyActionMode(ActionMode mode) {                  
            }

            public boolean onCreateActionMode(ActionMode mode, Menu menu) {
                return false;
            }

            public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
                return false;
            }
        });

您可以查看ActionMode.Callback() var aDictionary = [String : [Int : Int]]() let array = Array(aDictionary.keys) 了解更多信息,但它基本上会中止加载复制/粘贴对话框

答案 1 :(得分:0)

Ed George回答第一部分!

这是下半场

如果您使用的是API级别11或更高级别,则可以停止复制,粘贴,剪切和自定义上下文菜单。

edittext.setCustomSelectionActionModeCallback(new ActionMode.Callback() {

        public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
            return false;
        }

        public void onDestroyActionMode(ActionMode mode) {                  
        }

        public boolean onCreateActionMode(ActionMode mode, Menu menu) {
            return false;
        }

        public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
            return false;
        }
    });

从onCreateActionMode(ActionMode,Menu)返回false将阻止启动操作模式(选择全部,剪切,复制和粘贴操作)。