Android:仅当我创建了文件时,我才能通过我的应用程序打开文件(如果我在应用程序外部复制,则会被拒绝访问)

问题描述 投票:0回答:2

[![包含文件的文件夹(开始)][1]][1]

Folder with files (end)

在第二张图片中...

  • 我可以打开最后一个文件(JSON Web3j 凭据)....但我无法打开前一个文件(示例中)...
  • 第一个(最后一个文件)是由应用程序创建的...另一个是使用您在图片中看到的 Android 文件管理器复制到那里的。
  • 所以...存在两个文件,并且在同一目录中...一个是我的应用程序打开的,另一个不是!!!

我想这是许可证的问题,...或类似的问题。 但我不知道如何打开不是由我的应用程序创建的文件。

我在 AndroidManifest.xml 中管理许可并使用:

    if (ActivityCompat.checkSelfPermission(this
      , Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
        ActivityCompat.requestPermissions(this,
          new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE
          , Manifest.permission.READ_EXTERNAL_STORAGE},
          k_id_requestpermissions_external_storage);
    }

你能帮我吗?非常感谢...

android file permissions
2个回答
0
投票

终于找到问题和解决方案了...

不幸的是,Google Play Console 会出现大量拒绝,以允许您的应用获得该权限...(问题->解决方案->新问题...)

我需要额外的许可证:

  • AndroidManifest.xml
    <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
  • OnStart 中的主要活动(即)
intent_activityResultLauncher = registerForActivityResult(
    new ActivityResultContracts.StartActivityForResult()
    , new ActivityResultCallback<ActivityResult>() {
      @Override
      public void onActivityResult(ActivityResult result) {
          ResourceBundle in;
          try {
              in = ResourceBundles.getBundle(k_in_ruta);
              if (result.getResultCode() != RESULT_CANCELED) {
                  put_alert("No permit! ");
              }
          } catch (Exception e) {
              try {
                  put_alert(e);
              } catch (Exception e_ignorar) {}
          }
      }
});
if (android.os.Build.VERSION.SDK_INT >= 30) {
    if (Environment.isExternalStorageManager() == false) {
        Intent intent = new Intent();
         intent.setAction (Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION);
         Uri uri = Uri.fromParts("package", this.getPackageName(), null);
         intent.setData(uri);
         intent_activityResultLauncher.launch(intent);
    }
}


0
投票

我也为此苦苦挣扎。 为了让它工作,我所做的就是在“设置”、“权限管理器”、“文件和媒体”、“查看更多可以访问文件的应用程序”中打开我的应用程序的权限。然后我从应用程序列表中启用了我的应用程序。我仍然不知道安装程序时是否可以自动执行此操作。 我对此很陌生。

令人难以置信的是找到这个有多么困难......

© www.soinside.com 2019 - 2024. All rights reserved.