Otwórz PDF w aplikacji na Androida
Pracuję nad aplikacją, w której trzeba otworzyć plik pdf w urządzeniu,
Mam kod w sieci, który jest podobny do większości przykładów. Ale chodzi o to, że nie jestem w stanie otworzyć pliku, a kontrola przechodzi bezpośrednio do części "wyjątek".
Oto poniższy kod:
public class MyPDFDemo extends Activity
{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button OpenPDF = (Button) findViewById(R.id.button);
OpenPDF.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
File pdfFile = new File("/sdcard/Determine_RGB_Codes_With_Powerpoint [PDF Library].pdf");
if(pdfFile.exists())
{
Uri path = Uri.fromFile(pdfFile);
Intent pdfIntent = new Intent(Intent.ACTION_VIEW);
pdfIntent.setDataAndType(path, "application/pdf");
pdfIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
try
{
startActivity(pdfIntent);
}
catch(ActivityNotFoundException e)
{
Toast.makeText(MyPDFDemo.this, "No Application available to view pdf", Toast.LENGTH_LONG).show();
}
}
}
});
}
Kiedy uruchamiam ten kod: widziałem "brak aplikacji dostępnej do przeglądania pdf". Czy ktoś może mi pokazać plik pdf?
3 answers
Ponieważ twój blok catch ma ActivityNotFoundException, oznacza to, że nie masz żadnej aktywności/aplikacji, która może odczytać format pliku 'application / pdf'. Zainstaluj dowolną przeglądarkę pdf z Android Market (Adobe niedawno wydało ich), lub użyj wyżej wymienionej przeglądarki pdf open source, a twój problem najprawdopodobniej będzie rozwiązane.
Http://code.google.com/p/apv/downloads/list
Https://market.android.com/details?id=cx.hell.android.pdfview&feature=search_result
Po rozpoczęciu aktywności z podanymi paramami, wyszukuje wszystkie aplikacje/działania / zamiary, które są zarejestrowane w otwartym formacie pdf. Ponieważ nie masz żadnego w urządzeniu, otrzymujesz activitynotfoundexception
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-06-06 08:32:42
Twój kod ma rację, użyłem również tego samego kodu, aby otworzyć plik pdf w przeglądarce.
Ponieważ nie masz zainstalowanej przeglądarki na urządzeniu, więc nie można jej otworzyć bez żadnej przeglądarki.
Możesz zainstalować Adobe reader dla Androida.
Nie mogę otworzyć pliku pdf w emulatorze, więc muszę przetestować za pomocą mojego urządzenia.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-11-01 12:00:46
Najpierw zainstaluj czytnik pdf na urządzeniu. następnie użyj tego kodu do odczytu pliku pdf z pamięci wewnętrznej.
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
final TextView tv = (TextView)findViewById(R.id.tv);
Button bt=(Button)findViewById(R.id.openbtn);
bt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
File pdfFile = new File(Environment.getExternalStorageDirectory(),"Leave.pdf");
if(pdfFile.exists())
{
Uri path = Uri.fromFile(pdfFile);
Intent pdfIntent = new Intent(Intent.ACTION_VIEW);
pdfIntent.setDataAndType(path, "application/pdf");
pdfIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
try{
startActivity(pdfIntent);
}catch(ActivityNotFoundException e){
tv.setText("No Application available to view PDF");
}
}
else
{
tv.setText("File not found");
}
}
});
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-05-26 06:10:52