2012-02-23 12 views
0

私は、サーバーからpdfをダウンロードして保存するアプリケーションに取り組んでいます。それから私はレプリカリーダーのような別のアプリケーションを使用して私のアプリからpdfを読む。アンドロイドアプリでPDFfを使って保護していますか?

私は、他のアプリケーションがファイルを読み取ることができないようにPDFファイルを保存できる方法があることを知りたがっていました。このファイルは、自分のアプリケーションから使用されたときにのみ読み込まれます。 は、どのような方法はありますか?

答えて

2

(私の知る限り1として)私は /data/data/<package_name>files、このためには、アプリケーションの内部パッケージでダウンロードしたPDFファイルを保存する必要があると思うし、あなたがサードパーティのPDFでこのファイルを読み込む必要が助けてください読者。このためには、このファイルを許可番号MODE_WORLD_READABLEとして保存する必要があります。そのため、pdfファイルはアプリケーションのパッケージに格納されており、サードパーティのpdfリーダーで読むことができます。また、内部ストレージに置かれているため、他のアプリケーションが簡単にアクセスすることはできません(ルートデバイスを除く)。

書き込みファイルのためのコード、

FileOutputStream fos = openFileOutput(pdfFileName, Context.MODE_WORLD_READABLE); 
fos.write(pdfAsBytes); 
fos.close(); 

EDIT:

私が使用したPDFファイルを表示するには、

File file = new File("/data/data/<package_Name>/files/pdffile"); 
Uri path = Uri.fromFile(file); 
Intent pdfIntent = new Intent(Intent.ACTION_VIEW); 
pdfIntent.setDataAndType(path, "application/pdf"); 
pdfIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
try 
{ 
    startActivity(pdfIntent); 
} 
catch(Exception e) 
{ 
    Log.e("Activity Not Found Exception",e.toString()); 
} 
+0

私はこれを試してみましたが、PDFリーダーは、黒い画面を表示し、 – Navdroid

+0

これは私の場合はうまくいきます。上記のコードを使用してファイルディレクトリにpdfファイルストアをダウンロードしてから使用します。それをAdobePdfReaderに表示します。 – user370305

+0

私の更新されたコードを見てください。 – user370305

関連する問題