teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

追記2

2018/06/21 05:07

投稿

agepan
agepan

スコア66

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-diagnostic-pluginを用いて外部ストレージのパスを取得できる?ようなことが書かれており、現在試していますが、やり方が悪いのかうまくコードが回っていません。
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

追記

2018/06/21 05:07

投稿

agepan
agepan

スコア66

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を用いて外部ストレージのパスを取得できる?ようなことが書かれており、現在試していますが、やり方が悪いのかうまくコードが回っていません。