質問編集履歴

2

追記2

2018/06/21 05:07

投稿

agepan
agepan

スコア66

test CHANGED
File without changes
test CHANGED
@@ -48,4 +48,130 @@
48
48
 
49
49
  Googleで調べますと[こちらの英語ページ](https://stackoverflow.com/questions/45770040/external-storage-path-sd-card-for-android-5-1-1-and-later-with-cordova)で同様の試みがされているみたいです。
50
50
 
51
+
52
+
53
+ 下記コードで試してみたのですが、許可に関するメッセージは表示されず(Android 6以上対象で、Android 5の場合でも許可済みのメッセージが出るようなのですが出ませんでした)、コード最後に書いた「ここにSDに描き込む処理を書く」アラートが出るだけでした。何か問題箇所などお分かりの方はよろしくお願いいたします。
54
+
55
+
56
+
57
+ ```JavaScript
58
+
59
+ function test (){
60
+
61
+
62
+
63
+
64
+
65
+ requestExternalSdPermission();
66
+
67
+
68
+
69
+
70
+
71
+ // アクセス許可を取る(Android 6以上、5の場合は許可メッセージが出る)
72
+
73
+
74
+
75
+ function requestExternalSdPermission(done){
76
+
77
+ cordova.plugins.diagnostic.requestRuntimePermission(function(status){
78
+
79
+ switch(status){
80
+
81
+ case cordova.plugins.diagnostic.permissionStatus.GRANTED:
82
+
83
+ // 許可された場合
84
+
85
+ getExternalSdLocation(done); // SDカードのパスを取得する関数実行
86
+
87
+ break;
88
+
89
+ case cordova.plugins.diagnostic.permissionStatus.DENIED:
90
+
91
+ // 拒否された場合
92
+
93
+ console.log("Permission denied");
94
+
95
+ askAgain(done);
96
+
97
+ break;
98
+
99
+ case cordova.plugins.diagnostic.permissionStatus.DENIED_ALWAYS:
100
+
101
+ // 拒否された(恒久的)場合
102
+
103
+ console.log("Permission permanently denied");
104
+
105
+ reportError(done);
106
+
107
+ break;
108
+
109
+ }
110
+
111
+ }, function(error){
112
+
113
+ console.error("The following error occurred: "+error);
114
+
115
+ reportError(done);
116
+
117
+ }, cordova.plugins.diagnostic.permission.WRITE_EXTERNAL_STORAGE);
118
+
119
+ }
120
+
121
+
122
+
123
+
124
+
125
+
126
+
127
+ // SDカード 外部ストレージのパスを取得&書き込み
128
+
129
+
130
+
131
+ function getExternalSdLocation(done){
132
+
51
- cordova-diagnostic-pluginを用いて外部ストレージのパスを取得できる?ようなことが書かれており、現在試していますが、やり方が悪いのかうまくコードが回っていません。
133
+ cordova.plugins.diagnostic.getExternalSdCardDetails(function(details){
134
+
135
+ details.forEach(function(detail){
136
+
137
+ if(detail.type == "application"){
138
+
139
+ cordova.file.externalSdCardApplicationDirectory = detail.filePath;
140
+
141
+ }else if(detail.type == "root"){
142
+
143
+ cordova.file.externalSdCardRootDirectory = detail.filePath;
144
+
145
+ }
146
+
147
+ });
148
+
149
+ done();
150
+
151
+ }, function(error){
152
+
153
+ console.error(error);
154
+
155
+ done();
156
+
157
+ });
158
+
159
+ }
160
+
161
+
162
+
163
+ getExternalSdLocation(function(){
164
+
165
+ // cordova.file.externalSdCardApplicationDirectory を使用してSDカードに書き込む
166
+
167
+ alert('ここにSDに描き込む処理を書く');
168
+
169
+ });
170
+
171
+
172
+
173
+ }
174
+
175
+
176
+
177
+ ```

1

追記

2018/06/21 05:07

投稿

agepan
agepan

スコア66

test CHANGED
File without changes
test CHANGED
@@ -41,3 +41,11 @@
41
41
 
42
42
 
43
43
  ```
44
+
45
+
46
+
47
+ ### 追記
48
+
49
+ Googleで調べますと[こちらの英語ページ](https://stackoverflow.com/questions/45770040/external-storage-path-sd-card-for-android-5-1-1-and-later-with-cordova)で同様の試みがされているみたいです。
50
+
51
+ cordova-diagnostic-pluginを用いて外部ストレージのパスを取得できる?ようなことが書かれており、現在試していますが、やり方が悪いのかうまくコードが回っていません。