小编Mil*_*ilk的帖子

Android Q (10) 请求获得访问所有存储的权限。范围存储

在 Android 10 中,需要访问存储的应用程序需要请求访问具体路径的权限。但是像文件浏览器这样的应用程序可以请求访问根存储的权限并获得对所有存储的读/写权限。这就是我正在努力做的。

根据Android,我们必须ACTION_OPEN_DOCUMENT_TREE为此使用。我遇到的问题是一切似乎都正确,但未向应用授予权限。

  private void askAndroid10Perm()
    {
        Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE);
        intent.addFlags(
                Intent.FLAG_GRANT_READ_URI_PERMISSION
                        | Intent.FLAG_GRANT_WRITE_URI_PERMISSION
                        | Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION
                        | Intent.FLAG_GRANT_PREFIX_URI_PERMISSION);
        startActivityForResult(intent, REQUEST_CODE_OPEN_DOCUMENT_TREE);
    }
Run Code Online (Sandbox Code Playgroud)

在这里,用户可以看到 Android 文件树,并选择主存储,单击以授予权限。“它将允许 - 应用程序名称 - 可以完全访问当前存储在此位置下的所有文件,以及存储在此处的任何未来内容”-> 允许

然后:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    switch (requestCode) {
        case REQUEST_CODE_OPEN_DOCUMENT_TREE:
            if (resultCode == Activity.RESULT_OK) {
                Uri treeUri = data.getData();
                int takeFlags = data.getFlags();
                takeFlags &= (Intent.FLAG_GRANT_READ_URI_PERMISSION |
                        Intent.FLAG_GRANT_WRITE_URI_PERMISSION);

                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {

                    Log.i("TAG", "takePersistableUriPermission: " …
Run Code Online (Sandbox Code Playgroud)

android android-10.0 scoped-storage

23
推荐指数
3
解决办法
2万
查看次数

window.location = window.location 是否易受 XSS 攻击

这个问题与window.location = window.location作为刷新页面方法的代码有关,与重定向/其他变量无关。

我的理解如下:

window.location = window.location 导致页面刷新,因为浏览器将导航到用户已经所在的位置。

通过 DOM 操作对该变量的任何更改都将导致页面重新加载/加载攻击者页面,因此这些行将无法以更改的值执行,因此不是跨站点脚本攻击的候选者。

这样对吗?

编辑:我真正要问的是是否有一种方法可以在window.location不导致页面重新加载的情况下进行更改,以便在进行window.location = window.location调用时,浏览器将被发送到另一个位置。

javascript xss window.location

8
推荐指数
1
解决办法
1万
查看次数

自定义 AWS WorkMail 过滤

是否可以根据主题/正文中的内容将电子邮件工作流程规则(退回/丢弃)应用于 AWS WorkMail 收到的电子邮件?

想要过滤所有带有空正文或受垃圾邮件影响的电子邮件,以及过滤一些短语。

注意:文档说你不能使用 lambda https://docs.aws.amazon.com/workmail/latest/adminguide/lambda.html

Lambda 函数不影响电子邮件的发送或接收。

注 2:接收者规则不包括这些用例https://docs.aws.amazon.com/workmail/latest/adminguide/email-flows.html#email-flows-patterns

电子邮件流规则可应用于特定电子邮件地址,或特定域或域集下的所有电子邮件地址。

amazon-web-services amazon-workmail

7
推荐指数
0
解决办法
448
查看次数

withFormik:在初始值更改时,更新props.value

初始道具更改后,需要更新表单中的值

export default withFormik({
    mapPropsToValues: (props: Props) => {
        return (
            {
                id: props.initialData.id,
                name: props.initialData.name
            }
        );
    },
    handleSubmit: (values, {  props: Props, setSubmitting }) => {
      Props.submitHandler(values);
    },
  })(NewDatasourceForm);
Run Code Online (Sandbox Code Playgroud)

在这里,mapPropsToValues我能够得到新的props,但形式的值不会得到更新.

```const NewDatasourceForm =(props)=> {const {values,touching,errors,isSubmitting,setFieldValue,handleSubmit,handleChange,handleBlur} = props;

const NewDatasourceForm = (props) => {
const {
    values,
    touched,
    errors,
    isSubmitting,
    setFieldValue,
    handleSubmit,
    handleChange,
    handleBlur
} = props;

const _handleSelect = (selectDSChoice) => {
    try {
        setFieldValue('dataSourceType',  selectDSChoice.value);
    } catch (error) {
        // tslint:disable-next-line:no-console
        console.error(error);
    } …
Run Code Online (Sandbox Code Playgroud)

javascript forms typescript reactjs formik

6
推荐指数
1
解决办法
1万
查看次数

如何使用 CodeStar 连接将 git 标签推送到 AWS Pipeline 中的 GitHub?

我有一个通过 CodeStar Connection 连接到 GitHub 的 AWS Pipeline。该过程如下所示:

  1. 从 GitHub 获取源代码
  2. 构建项目
  3. 运行测试
  4. 部署

在步骤 4 之前(或作为步骤 4 的一部分),我希望 AWS Pipeline 使用 git 标签标记代码,然后将其推回 GitHub 中的存储库。

我怎样才能做到这一点?

git github aws-codepipeline aws-codestar

6
推荐指数
1
解决办法
3859
查看次数

提交不带查询字符串的表单

我在一个类似的页面上http://example.com?query=value有一个表单<form id="formId" method="POST">

http://example.com在没有查询字符串的情况下提交表单的最佳方式是什么?

我目前正在尝试:

$('#formId').submit(function(e){
    e.preventDefault();
    var url = window.location.href; 
    if (url.indexOf("?") != -1){
        $('#formId').attr('action', url.split("?")[0]);
    }
    $('#formId').submit();
});
Run Code Online (Sandbox Code Playgroud)

但它似乎不起作用。

我更喜欢 javascript/jQuery 解决方案,因为这种模式在网站中很常见

html javascript jquery post query-string

5
推荐指数
1
解决办法
3456
查看次数

如何使用 AWS CodeBuild 构建开发/测试/生产

我在 AWS CodeCommit 中托管了一个存储库,其buildspec.yml根目录中包含 AWS CodeBuild 用于从源构建的存储库。

是否可以传入变量/读取源(AWS Pipeline arn?)或类似的东西,以便我可以在 AWS CodeBuild 中确定是否进行开发、测试或生产构建?

如果没有,是否有另一种方法可以在我缺少的 AWS CodePipeline 中实现此目的?

amazon-web-services aws-codepipeline aws-codebuild

5
推荐指数
1
解决办法
3480
查看次数

Glide 4:获取 GifDrawable 的 GifDecoder

我希望将我的应用程序从 Glide v3 升级到 Glide v4。我需要知道gif通过 Glide 加载的循环有多长。

v3 代码:

int duration = 0;
GifDecoder decoder = gifDrawable.getDecoder();
for (int i = 0; i < gifDrawable.getFrameCount(); i++) {
    duration += decoder.getDelay(i);
}
Run Code Online (Sandbox Code Playgroud)

看起来GifDecoderGlide v4 不再公开。没有它我如何计算这个,或者我现在如何获得解码器?

java android image-loading android-image android-glide

4
推荐指数
1
解决办法
1268
查看次数

防止 gradle 跳过任务

我有一堆按顺序运行的任务,有些是根据属性文件中的值跳过的。

在不更改属性或原始任务定义的情况下,如何告诉 Gradle跳过任务?

我试过添加

myTask.onlyIf { true }
Run Code Online (Sandbox Code Playgroud)

但这似乎并没有覆盖现有的onlyIf调用。

gradle build.gradle

4
推荐指数
1
解决办法
1250
查看次数

捕获“ RuntimeException:画布:试图绘制太大...”

我有一个应用程序,它将文件系统中的图像绘制到屏幕上,如下所示:

Bitmap image = BitmapFactory.decodeFile(file.getPath());
imageView.setImageBitmap(image);
Run Code Online (Sandbox Code Playgroud)

如果图像很大,我会看到此错误:

java.lang.RuntimeException: Canvas: trying to draw too large(213828900bytes) bitmap.
    at android.view.DisplayListCanvas.throwIfCannotDraw(DisplayListCanvas.java:260)
    at android.graphics.Canvas.drawBitmap(Canvas.java:1415)
    ...
Run Code Online (Sandbox Code Playgroud)

堆栈无法到达我的代码。如何捕获此错误?还是有一种更合适的方法将图像绘制到imageView可以避免此错误的位置?

android imageview

3
推荐指数
2
解决办法
1万
查看次数