在 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) 这个问题与window.location = window.location
作为刷新页面方法的代码有关,与重定向/其他变量无关。
我的理解如下:
window.location = window.location
导致页面刷新,因为浏览器将导航到用户已经所在的位置。
通过 DOM 操作对该变量的任何更改都将导致页面重新加载/加载攻击者页面,因此这些行将无法以更改的值执行,因此不是跨站点脚本攻击的候选者。
这样对吗?
编辑:我真正要问的是是否有一种方法可以在window.location
不导致页面重新加载的情况下进行更改,以便在进行window.location = window.location
调用时,浏览器将被发送到另一个位置。
是否可以根据主题/正文中的内容将电子邮件工作流程规则(退回/丢弃)应用于 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
电子邮件流规则可应用于特定电子邮件地址,或特定域或域集下的所有电子邮件地址。
初始道具更改后,需要更新表单中的值
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) 我有一个通过 CodeStar Connection 连接到 GitHub 的 AWS Pipeline。该过程如下所示:
在步骤 4 之前(或作为步骤 4 的一部分),我希望 AWS Pipeline 使用 git 标签标记代码,然后将其推回 GitHub 中的存储库。
我怎样才能做到这一点?
我在一个类似的页面上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 解决方案,因为这种模式在网站中很常见
我在 AWS CodeCommit 中托管了一个存储库,其buildspec.yml
根目录中包含 AWS CodeBuild 用于从源构建的存储库。
是否可以传入变量/读取源(AWS Pipeline arn?)或类似的东西,以便我可以在 AWS CodeBuild 中确定是否进行开发、测试或生产构建?
如果没有,是否有另一种方法可以在我缺少的 AWS CodePipeline 中实现此目的?
我希望将我的应用程序从 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)
看起来GifDecoder
Glide v4 不再公开。没有它我如何计算这个,或者我现在如何获得解码器?
我有一堆按顺序运行的任务,有些是根据属性文件中的值跳过的。
在不更改属性或原始任务定义的情况下,如何告诉 Gradle不跳过任务?
我试过添加
myTask.onlyIf { true }
Run Code Online (Sandbox Code Playgroud)
但这似乎并没有覆盖现有的onlyIf
调用。
我有一个应用程序,它将文件系统中的图像绘制到屏幕上,如下所示:
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 ×3
javascript ×3
android-10.0 ×1
aws-codestar ×1
build.gradle ×1
formik ×1
forms ×1
git ×1
github ×1
gradle ×1
html ×1
imageview ×1
java ×1
jquery ×1
post ×1
query-string ×1
reactjs ×1
typescript ×1
xss ×1