質問編集履歴
4
補足情報を追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -79,12 +79,19 @@
|
|
79
79
|
MAINやEDITだと開けましたが、やはりコピーされてしまいます。
|
80
80
|
|
81
81
|
### 補足情報(FW/ツールのバージョンなど)
|
82
|
-
PDFを更新せずに何度もintentを投げてもコピーは作成されません。
|
82
|
+
・PDFを更新せずに何度もintentを投げてもコピーは作成されません。
|
83
83
|
タイムスタンプが変わると別ファイルと認識するのか、新規にコピーが作成されてしまいます。
|
84
84
|
その場合、android studioのログを見てみても、コピーされる場合・されない場合での違いが見つかりませんでした。
|
85
85
|
|
86
|
-
コピーされる場所
|
86
|
+
・コピーされる場所
|
87
87
|
ezPDFReader:ソースに記述
|
88
88
|
adobe acrobat reader:ユーザーデータ?
|
89
89
|
(アプリ情報-ストレージから確認。PDFの分だけ容量が増えるので。
|
90
|
-
/storage/emulated/0/Android/data/com.adobe.reader/files/ではないです。)
|
90
|
+
/storage/emulated/0/Android/data/com.adobe.reader/files/ではないです。)
|
91
|
+
|
92
|
+
|
93
|
+
・adobe acrobat readerを立ち上げてPDFを開く場合
|
94
|
+
「ファイル-その他のファイルを参照」から開くと以下メッセージが表示され、コピーが作成されます。
|
95
|
+
「Adobe Acrobatによって自動的に文書のローカルコピーが作成されます」
|
96
|
+
|
97
|
+
PDFに何かステータスが付いているのかとも考えましたが、上記のように同じPDFでもオペレーションによりコピーされる場合があることから、intentの属性のような気もします。
|
3
ソースに追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -62,6 +62,8 @@
|
|
62
62
|
if(filedele.exists()) {
|
63
63
|
try {
|
64
64
|
//ここに入るので存在している
|
65
|
+
Boolean fileio = filedele.canRead();//falseが返ってくる
|
66
|
+
Boolean filecandele = filedele.delete();//falseが返ってくる
|
65
67
|
java.nio.file.Files.delete(java.nio.file.Paths.get(folderPath));
|
66
68
|
} catch (Exception e){
|
67
69
|
e.printStackTrace(); //AccessDeniedExcptionが返ってくる
|
2
ソース・補足情報を追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -43,6 +43,32 @@
|
|
43
43
|
intent.setPackage("com.adobe.reader");
|
44
44
|
|
45
45
|
startActivity(intent);
|
46
|
+
|
47
|
+
|
48
|
+
|
49
|
+
//コピーされたPDFの削除
|
50
|
+
if(checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE)==PackageManager.PERMISSION_GRANTED) {
|
51
|
+
}else {
|
52
|
+
//ここは通らないので権限はあるはず
|
53
|
+
int PER_REQ_CODE = 1001;
|
54
|
+
String per_req[] = new String[0];
|
55
|
+
ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},PER_REQ_CODE);
|
56
|
+
}
|
57
|
+
|
58
|
+
folderPath ="/storage/emulated/0/ezPDFReader/bookdata/library/temp.pdf";
|
59
|
+
|
60
|
+
File filedele = new File(folderPath);
|
61
|
+
|
62
|
+
if(filedele.exists()) {
|
63
|
+
try {
|
64
|
+
//ここに入るので存在している
|
65
|
+
java.nio.file.Files.delete(java.nio.file.Paths.get(folderPath));
|
66
|
+
} catch (Exception e){
|
67
|
+
e.printStackTrace(); //AccessDeniedExcptionが返ってくる
|
68
|
+
}finally {
|
69
|
+
}
|
70
|
+
}
|
71
|
+
|
46
72
|
```
|
47
73
|
|
48
74
|
### 試したこと
|
@@ -53,4 +79,10 @@
|
|
53
79
|
### 補足情報(FW/ツールのバージョンなど)
|
54
80
|
PDFを更新せずに何度もintentを投げてもコピーは作成されません。
|
55
81
|
タイムスタンプが変わると別ファイルと認識するのか、新規にコピーが作成されてしまいます。
|
56
|
-
その場合、android studioのログを見てみても、コピーされる場合・されない場合での違いが見つかりませんでした。
|
82
|
+
その場合、android studioのログを見てみても、コピーされる場合・されない場合での違いが見つかりませんでした。
|
83
|
+
|
84
|
+
コピーされる場所
|
85
|
+
ezPDFReader:ソースに記述
|
86
|
+
adobe acrobat reader:ユーザーデータ?
|
87
|
+
(アプリ情報-ストレージから確認。PDFの分だけ容量が増えるので。
|
88
|
+
/storage/emulated/0/Android/data/com.adobe.reader/files/ではないです。)
|
1
intentのソースを追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -24,7 +24,25 @@
|
|
24
24
|
### 該当のソースコード
|
25
25
|
|
26
26
|
```ここに言語名を入力
|
27
|
+
//adobe acrobat readerに渡すintent
|
28
|
+
File shareFile =new File("/storage/emulated/0/Android/data/(パッケージ名)/files/(mkdirしたフォルダ)/temp.pdf");
|
29
|
+
Uri shareUri =FileProvider.getUriForFile(getApplicationContext(), BuildConfig.APPLICATION_ID + ".FileProvider", shareFile);
|
30
|
+
|
31
|
+
Intent intent = new Intent();
|
32
|
+
intent.setAction(Intent.ACTION_VIEW);
|
33
|
+
intent.setDataAndType(shareUri, "application/pdf");
|
34
|
+
|
35
|
+
// 別タスクとして実行
|
36
|
+
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
|
37
|
+
| Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
|
27
|
-
|
38
|
+
//権限付与
|
39
|
+
intent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION
|
40
|
+
| Intent.FLAG_GRANT_READ_URI_PERMISSION);
|
41
|
+
|
42
|
+
//acrobatを指定
|
43
|
+
intent.setPackage("com.adobe.reader");
|
44
|
+
|
45
|
+
startActivity(intent);
|
28
46
|
```
|
29
47
|
|
30
48
|
### 試したこと
|