android - Android:请求存储权限后的闪屏问题
问题描述
我在我的项目中使用了cordova闪屏插件 当我使用这些代码请求存储权限时,闪屏不起作用:
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
{
requestPermissions(new String[] {Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);
requestPermissions(new String[] {Manifest.permission.READ_EXTERNAL_STORAGE}, 1);
}
当我删除此代码时,闪屏再次起作用!
这是我的主要活动:
public class MainActivity extends CordovaActivity
{
boolean doubleBackToExitPressedOnce = false;
int res = 404;
int code;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
Bundle extras = getIntent().getExtras();
if (extras != null && extras.getBoolean("cdvStartInBackground", false)) {
moveTaskToBack(true);
}
....
....
....
UiChangeListener();
requestPermission();
}
public void UiChangeListener()
{
final View decorView = getWindow().getDecorView();
decorView.setOnSystemUiVisibilityChangeListener (new View.OnSystemUiVisibilityChangeListener() {
@Override
public void onSystemUiVisibilityChange(int visibility) {
if ((visibility & View.SYSTEM_UI_FLAG_FULLSCREEN) == 0) {
decorView.setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE);
}
}
});
}
private void requestPermission() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
requestPermissions(new String[]{android.Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);
requestPermissions(new String[]{android.Manifest.permission.READ_EXTERNAL_STORAGE}, 1);
} }
}
}
怎么了?
解决方案
而不是这个:
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
{
requestPermissions(new String[] {Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);
requestPermissions(new String[] {Manifest.permission.READ_EXTERNAL_STORAGE}, 1);
}
写这个:
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
{
requestPermissions(new String[] {Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE}, 1);
}
您不必为 2 个不同的权限请求 2 次权限。您可以将尽可能多的权限组合到单个请求中。
希望能帮助到你。
推荐阅读
- c++ - 使用函数验证字符串和整数是否为回文(C++)
- ruby-on-rails - 表单中未识别方法的错误 - Ruby on rails
- java - 如何在spring boot app中删除动态创建的消费者组
- javascript - 使用 Node.js 解析和修改本地 HTML
- python - 填补烛台图范围突破之间的空白
- html - 无法更改下拉元素的宽度
- mapbox - 在 Mapbox-GL 中动态移除 Mapbox 3D 地形
- amqp - 在 Artemis MessagingClient 失败后 Corda 节点崩溃,“Artemis MessagingClient 失败。正在关闭。”
- javascript - 我无法在 node.js 中上传 PDF 文件
- awk - 如何使用 sed 或 awk 打印以关键字开头并以反斜杠连接的行