【问题标题】:Creating folder in INTERNAL STORAGE and saving bitmap image in folder on MARSHMALLOW在 INTERNAL STORAGE 中创建文件夹并将位图图像保存在 MARSHMALLOW 的文件夹中
【发布时间】:2018-09-17 02:43:02
【问题描述】:

如何在 INTERNAL STORAGE 中创建文件夹并将位图图像保存在 Android marshmallow 的文件夹中。 我特别想知道 Marshmallow ......而且我已经在清单文件中给予了所有许可。 请帮我解决这个问题..

【问题讨论】:

    标签: android


    【解决方案1】:

    参考:Make directory in android

    参考:How to check Grants Permissions at Run-Time?

    我刚刚发现我的需要,我们可以检查权限是否被授予:

    checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE)
    

    必要时请求权限

    if (checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE)
                != PackageManager.PERMISSION_GRANTED) {
            requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
                    100);
    
            // MY_PERMISSIONS_REQUEST_READ_CONTACTS is an
            // app-defined int constant
    
            return;
        }
    Handle the permissions request response
    @Override
    public void onRequestPermissionsResult(int requestCode,
            String permissions[], int[] grantResults) {
        switch (requestCode) {
            case 100: {
                if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
    
                    // permission was granted, yay! do the
                    // calendar task you need to do.
    
                } else {
    
                    // permission denied, boo! Disable the
                    // functionality that depends on this permission.
                }
                return;
            }
    
            // other 'switch' lines to check for other
            // permissions this app might request
        }
    }
    

    创建文件夹喜欢

    File directory = new File(Environment.getExternalStorageDirectory()+File.separator+"images");
    

    目录.mkdirs();

    让我知道这是否适合你!

    您还需要在AndroidManifest.xml 中添加以下行

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    

    【讨论】:

      【解决方案2】:

      在特别是 Marshmallow 版本中,需要以编程方式获取权限。以下是读取外部存储的示例代码。

      ActivityCompat.requestPermissions(MainActivity.this,
                      new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},
                      PERMISSION_CODE);
      

      在 onResultPermissionsRequest() 方法中

      @Override
      public void onRequestPermissionsResult(int requestCode,
                                         String permissions[], int[] grantResults) {
         if(requestCode == PERMISSION_CODE){
               if(grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED){
      
                      //Permission granted 
                }
                else{
                     //Permission Not granted
                }
      
         }
      
      }
      

      希望为各种不同的权限编写类似的代码。希望这应该有效。如果这不起作用,在 Marshmallow 中肯定需要动态获取权限。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-08-12
        • 2019-04-10
        • 2016-01-20
        • 2014-12-11
        • 1970-01-01
        相关资源
        最近更新 更多