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

質問編集履歴

4

補足情報を追記

2021/04/21 02:29

投稿

t_kogure
t_kogure

スコア0

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

ソースに追記

2021/04/21 02:29

投稿

t_kogure
t_kogure

スコア0

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

ソース・補足情報を追記

2021/04/21 02:02

投稿

t_kogure
t_kogure

スコア0

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のソースを追記

2021/04/21 01:52

投稿

t_kogure
t_kogure

スコア0

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
  ### 試したこと