質問編集履歴

4

補足情報を追記

2021/04/21 02:29

投稿

t_kogure
t_kogure

スコア0

test CHANGED
File without changes
test CHANGED
@@ -160,7 +160,7 @@
160
160
 
161
161
  ### 補足情報(FW/ツールのバージョンなど)
162
162
 
163
- PDFを更新せずに何度もintentを投げてもコピーは作成されません。
163
+ PDFを更新せずに何度もintentを投げてもコピーは作成されません。
164
164
 
165
165
  タイムスタンプが変わると別ファイルと認識するのか、新規にコピーが作成されてしまいます。
166
166
 
@@ -168,7 +168,7 @@
168
168
 
169
169
 
170
170
 
171
- コピーされる場所
171
+ コピーされる場所
172
172
 
173
173
  ezPDFReader:ソースに記述
174
174
 
@@ -177,3 +177,17 @@
177
177
  (アプリ情報-ストレージから確認。PDFの分だけ容量が増えるので。
178
178
 
179
179
  /storage/emulated/0/Android/data/com.adobe.reader/files/ではないです。)
180
+
181
+
182
+
183
+
184
+
185
+ ・adobe acrobat readerを立ち上げてPDFを開く場合
186
+
187
+ 「ファイル-その他のファイルを参照」から開くと以下メッセージが表示され、コピーが作成されます。
188
+
189
+ 「Adobe Acrobatによって自動的に文書のローカルコピーが作成されます」
190
+
191
+
192
+
193
+ PDFに何かステータスが付いているのかとも考えましたが、上記のように同じPDFでもオペレーションによりコピーされる場合があることから、intentの属性のような気もします。

3

ソースに追記

2021/04/21 02:29

投稿

t_kogure
t_kogure

スコア0

test CHANGED
File without changes
test CHANGED
@@ -126,6 +126,10 @@
126
126
 
127
127
  //ここに入るので存在している
128
128
 
129
+ Boolean fileio = filedele.canRead();//falseが返ってくる
130
+
131
+ Boolean filecandele = filedele.delete();//falseが返ってくる
132
+
129
133
  java.nio.file.Files.delete(java.nio.file.Paths.get(folderPath));
130
134
 
131
135
  } catch (Exception e){

2

ソース・補足情報を追記

2021/04/21 02:02

投稿

t_kogure
t_kogure

スコア0

test CHANGED
File without changes
test CHANGED
@@ -88,6 +88,58 @@
88
88
 
89
89
  startActivity(intent);
90
90
 
91
+
92
+
93
+
94
+
95
+
96
+
97
+ //コピーされたPDFの削除
98
+
99
+ if(checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE)==PackageManager.PERMISSION_GRANTED) {
100
+
101
+ }else {
102
+
103
+ //ここは通らないので権限はあるはず
104
+
105
+ int PER_REQ_CODE = 1001;
106
+
107
+ String per_req[] = new String[0];
108
+
109
+ ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},PER_REQ_CODE);
110
+
111
+ }
112
+
113
+
114
+
115
+ folderPath ="/storage/emulated/0/ezPDFReader/bookdata/library/temp.pdf";
116
+
117
+
118
+
119
+ File filedele = new File(folderPath);
120
+
121
+
122
+
123
+ if(filedele.exists()) {
124
+
125
+ try {
126
+
127
+ //ここに入るので存在している
128
+
129
+ java.nio.file.Files.delete(java.nio.file.Paths.get(folderPath));
130
+
131
+ } catch (Exception e){
132
+
133
+ e.printStackTrace(); //AccessDeniedExcptionが返ってくる
134
+
135
+ }finally {
136
+
137
+ }
138
+
139
+ }
140
+
141
+
142
+
91
143
  ```
92
144
 
93
145
 
@@ -109,3 +161,15 @@
109
161
  タイムスタンプが変わると別ファイルと認識するのか、新規にコピーが作成されてしまいます。
110
162
 
111
163
  その場合、android studioのログを見てみても、コピーされる場合・されない場合での違いが見つかりませんでした。
164
+
165
+
166
+
167
+ コピーされる場所
168
+
169
+ ezPDFReader:ソースに記述
170
+
171
+ adobe acrobat reader:ユーザーデータ?
172
+
173
+ (アプリ情報-ストレージから確認。PDFの分だけ容量が増えるので。
174
+
175
+ /storage/emulated/0/Android/data/com.adobe.reader/files/ではないです。)

1

intentのソースを追記

2021/04/21 01:52

投稿

t_kogure
t_kogure

スコア0

test CHANGED
File without changes
test CHANGED
@@ -50,7 +50,43 @@
50
50
 
51
51
  ```ここに言語名を入力
52
52
 
53
+ //adobe acrobat readerに渡すintent
54
+
55
+ File shareFile =new File("/storage/emulated/0/Android/data/(パッケージ名)/files/(mkdirしたフォルダ)/temp.pdf");
56
+
57
+ Uri shareUri =FileProvider.getUriForFile(getApplicationContext(), BuildConfig.APPLICATION_ID + ".FileProvider", shareFile);
58
+
59
+
60
+
61
+ Intent intent = new Intent();
62
+
63
+ intent.setAction(Intent.ACTION_VIEW);
64
+
65
+ intent.setDataAndType(shareUri, "application/pdf");
66
+
67
+
68
+
69
+ // 別タスクとして実行
70
+
71
+ intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
72
+
73
+ | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
74
+
53
- ソースコード
75
+ //権限付与
76
+
77
+ intent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION
78
+
79
+ | Intent.FLAG_GRANT_READ_URI_PERMISSION);
80
+
81
+
82
+
83
+ //acrobatを指定
84
+
85
+ intent.setPackage("com.adobe.reader");
86
+
87
+
88
+
89
+ startActivity(intent);
54
90
 
55
91
  ```
56
92