addcircle - android path line




從android工作區文件夾調用文件路徑 (2)

如果您將PDF移動到assets/ ,則可以使用AssetManager為其檢索InputStream

如果您的目標是在第三方PDF查看器中顯示它們(如代碼所示),那麼您可以:

  • 將資產中的PDF複製到外部存儲器,在這種情況下,其餘代碼將工作,或

  • 將資產中的PDF複製到內部存儲中,然後使用FileProvider將其發佈到PDF查看器或

  • 使用我的StreamProvider將PDF直接從資產發佈到查看器應用程序

可以在Android文檔中找到FileProvider覆蓋範圍。 我的StreamProvider基於Google的FileProvider ,工作方式類似。

基本上我右鍵點擊了我的項目名稱,並成功創建了一個名為pdfs的新文件夾。 我想在這裡預加載一些pdf文件,所以我怎樣從mainactivity類中調用這個路徑/ somepdffile.pdf;

import java.io.File;

import android.app.Activity;
import android.content.ActivityNotFoundException;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class FullscreenActivity extends Activity {

 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_fullscreen);

  Button button = (Button) findViewById(R.id.bPressMe);

  button.setOnClickListener(new OnClickListener() {
   @Override
   public void onClick(View v) {

    File pdfFile = new File(Environment
      .getExternalStorageDirectory(), "pdfs/2pg.pdf");

    try {
     if (pdfFile.exists()) {
      Uri path = Uri.fromFile(pdfFile);
      Intent objIntent = new Intent(Intent.ACTION_VIEW);
      objIntent.setDataAndType(path, "application/pdf");
      objIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
      startActivity(objIntent);
     } else {
      Toast.makeText(FullscreenActivity.this, "File NotFound",
        Toast.LENGTH_SHORT).show();
     }
    } catch (ActivityNotFoundException e) {
     Toast.makeText(FullscreenActivity.this,
       "No Viewer Application Found", Toast.LENGTH_SHORT)
       .show();
    } catch (Exception e) {
     e.printStackTrace();
    }
   }
  });

 }

}


最好把它們放在資產/文件夾中,這樣你就可以通過AssetManager訪問它們。 像這樣的東西

    AssetManager assetManager = getAssets();

    InputStream in = null;
    OutputStream out = null;
    File file = new File(getFilesDir(), "name_of_pdf_file.pdf");
    try
    {
        in = assetManager.open("name_of_pdf_file.pdf");

        in.close();
        in = null;
    } catch (Exception e)
    {
        Log.e("tag", e.getMessage());
    }




path