質問編集履歴
2
追記2
    
        title	
    CHANGED
    
    | 
            File without changes
         | 
    
        body	
    CHANGED
    
    | @@ -23,4 +23,67 @@ | |
| 23 23 |  | 
| 24 24 | 
             
            ### 追記
         | 
| 25 25 | 
             
            Googleで調べますと[こちらの英語ページ](https://stackoverflow.com/questions/45770040/external-storage-path-sd-card-for-android-5-1-1-and-later-with-cordova)で同様の試みがされているみたいです。
         | 
| 26 | 
            +
             | 
| 27 | 
            +
            下記コードで試してみたのですが、許可に関するメッセージは表示されず(Android 6以上対象で、Android 5の場合でも許可済みのメッセージが出るようなのですが出ませんでした)、コード最後に書いた「ここにSDに描き込む処理を書く」アラートが出るだけでした。何か問題箇所などお分かりの方はよろしくお願いいたします。
         | 
| 28 | 
            +
             | 
| 29 | 
            +
            ```JavaScript
         | 
| 30 | 
            +
            function test (){
         | 
| 31 | 
            +
              
         | 
| 32 | 
            +
              
         | 
| 33 | 
            +
              requestExternalSdPermission();
         | 
| 34 | 
            +
              
         | 
| 35 | 
            +
              
         | 
| 36 | 
            +
              // アクセス許可を取る(Android 6以上、5の場合は許可メッセージが出る)
         | 
| 37 | 
            +
              
         | 
| 38 | 
            +
              function requestExternalSdPermission(done){
         | 
| 39 | 
            +
                  cordova.plugins.diagnostic.requestRuntimePermission(function(status){
         | 
| 40 | 
            +
                      switch(status){
         | 
| 41 | 
            +
                          case cordova.plugins.diagnostic.permissionStatus.GRANTED:
         | 
| 42 | 
            +
                              // 許可された場合
         | 
| 43 | 
            +
                              getExternalSdLocation(done); // SDカードのパスを取得する関数実行
         | 
| 44 | 
            +
                              break;
         | 
| 45 | 
            +
                          case cordova.plugins.diagnostic.permissionStatus.DENIED:
         | 
| 46 | 
            +
                              // 拒否された場合
         | 
| 47 | 
            +
                              console.log("Permission denied");
         | 
| 48 | 
            +
                              askAgain(done);
         | 
| 49 | 
            +
                              break;
         | 
| 50 | 
            +
                          case cordova.plugins.diagnostic.permissionStatus.DENIED_ALWAYS:
         | 
| 51 | 
            +
                              // 拒否された(恒久的)場合
         | 
| 52 | 
            +
                              console.log("Permission permanently denied");
         | 
| 53 | 
            +
                              reportError(done);
         | 
| 54 | 
            +
                              break;
         | 
| 55 | 
            +
                      }
         | 
| 56 | 
            +
                  }, function(error){
         | 
| 57 | 
            +
                      console.error("The following error occurred: "+error);
         | 
| 58 | 
            +
                      reportError(done);
         | 
| 59 | 
            +
                  }, cordova.plugins.diagnostic.permission.WRITE_EXTERNAL_STORAGE);
         | 
| 60 | 
            +
              }
         | 
| 61 | 
            +
              
         | 
| 62 | 
            +
              
         | 
| 63 | 
            +
              
         | 
| 64 | 
            +
              // SDカード 外部ストレージのパスを取得&書き込み
         | 
| 65 | 
            +
              
         | 
| 66 | 
            +
              function getExternalSdLocation(done){
         | 
| 26 | 
            -
            cordova | 
| 67 | 
            +
                  cordova.plugins.diagnostic.getExternalSdCardDetails(function(details){
         | 
| 68 | 
            +
                      details.forEach(function(detail){
         | 
| 69 | 
            +
                          if(detail.type == "application"){
         | 
| 70 | 
            +
                              cordova.file.externalSdCardApplicationDirectory = detail.filePath;
         | 
| 71 | 
            +
                          }else if(detail.type == "root"){
         | 
| 72 | 
            +
                              cordova.file.externalSdCardRootDirectory = detail.filePath;
         | 
| 73 | 
            +
                          }
         | 
| 74 | 
            +
                      });
         | 
| 75 | 
            +
                      done();
         | 
| 76 | 
            +
                  }, function(error){
         | 
| 77 | 
            +
                      console.error(error);
         | 
| 78 | 
            +
                      done();
         | 
| 79 | 
            +
                  });
         | 
| 80 | 
            +
              }
         | 
| 81 | 
            +
             | 
| 82 | 
            +
              getExternalSdLocation(function(){
         | 
| 83 | 
            +
                  // cordova.file.externalSdCardApplicationDirectory を使用してSDカードに書き込む
         | 
| 84 | 
            +
                alert('ここにSDに描き込む処理を書く');
         | 
| 85 | 
            +
              });  
         | 
| 86 | 
            +
              
         | 
| 87 | 
            +
            }
         | 
| 88 | 
            +
             | 
| 89 | 
            +
            ```
         | 
1
追記
    
        title	
    CHANGED
    
    | 
            File without changes
         | 
    
        body	
    CHANGED
    
    | @@ -19,4 +19,8 @@ | |
| 19 19 |  | 
| 20 20 | 
             
            }
         | 
| 21 21 |  | 
| 22 | 
            -
            ```
         | 
| 22 | 
            +
            ```
         | 
| 23 | 
            +
             | 
| 24 | 
            +
            ### 追記
         | 
| 25 | 
            +
            Googleで調べますと[こちらの英語ページ](https://stackoverflow.com/questions/45770040/external-storage-path-sd-card-for-android-5-1-1-and-later-with-cordova)で同様の試みがされているみたいです。
         | 
| 26 | 
            +
            cordova-diagnostic-pluginを用いて外部ストレージのパスを取得できる?ようなことが書かれており、現在試していますが、やり方が悪いのかうまくコードが回っていません。
         | 
