PDF öffnen, URL.toUri() Problem

S

Swoop

Fortgeschrittenes Mitglied
4
Hallo Leute,

ich weis, dass das PDF Thema schon einigemale Besprochen wurde. Ich habe mich auch für den Weg entschieden, dem Nutzer es zu Überlassen, wie er die PDF öffnet. Ich löse dafür nur einen Intent aus.
Soweit so gut. Ich habe auch schon den großteil Programmiert. Allerdings kommt bei mir noch ein erschwerender Faktor hinzu. Die Datei liegt nicht auf dem Handy oder auf SD-Card sondern auf einem Webserver.

Hier mal mein Code:

Code:
    private void loadPDFFile(String url) throws IOException, URISyntaxException {
        URL urlObj = new URL(url);
        URLConnection connection = urlObj.openConnection();
        PD_CommonWebInternal.setHTTPAuthorization(connection, QC.USERNAME, QC.PASSWORD);

        File file = new File(urlObj.toURI());
        Log.v("QTVX", "urlObj: " + urlObj);
        Log.v("QTVX", "File: " + file);

        Log.v("QTVX", "File.exist(): " + file.exists());
        if (file.exists()) {
            Uri path = Uri.fromFile(file);
            Intent intent = new Intent(Intent.ACTION_VIEW);
            intent.setDataAndType(path, "application/pdf");
            intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

            try {
                getModel().startActivity(intent);
            } catch (ActivityNotFoundException e) {
                Log.v("QTVX", "Exception in open the Activity");
                Toast.makeText(getModel(), "No Application Available to View PDF",
                        Toast.LENGTH_SHORT).show();
            }
        }

    }

Ich möchte gerne die PDF anzeigen: PDF

Und hier meine Exception, welche in der Zeile "File file = new File(urlObj.toURI());" auftritt:



Ich hoffe ihr wisst evtl einen Lösung...
Ansonsten lass ich mich auch überzeugen eine andere Art und Weise einzuschlagen, damit PDF´s auf dem Handy laufen :D

Grüße Swoop
 
hab vor lauter Bäumen den wald nicht mehr gesehen...

Hab schon eine Lösung gefunden:

Code:
File file = new File(url);
        Uri path = Uri.fromFile(file);
        Intent intent = new Intent(Intent.ACTION_VIEW);
        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        intent.setDataAndType(path, "application/pdf");
        try {
            getModel().startActivity(intent);
        } catch (ActivityNotFoundException e) {
            Log.v("QTVX", "Exception in open the Activity");
        }
Allerdings spaziert jetzt schon der nächste Fehler ins Haus. Mit diesem Code kommt die Auswahl und meine Apps werden erkannt, welche PDF-Darstellen können. Wähle ich dann Adobe Reader aus kommt "Fehler: Der Dasteipfad ist ungütltig." Obwohl ich die PDF mit genau diesem Link, den ich übergebe, im Browser auf dem PC öffnen kann.

Grüße Swoop

Edit:

Wenn ich das File ausgeben lasse, wird auch der richtige Pfad ausgegeben ... aber wenn ich das File auf existieren Prüfe kommt false zurück -.-
 
Zuletzt bearbeitet:
vielleicht versucht der Adobe Reader die datei lokal zu lesen? lad dir doch mal die datei runter und versuch sie dann zu öffen
 
ja so werd ichs jetzt komplett machen... Datei downloaden und auf SD-Card ablegen und dann die PDF Datei öffnen...
 

Ähnliche Themen

Gemini-Media
Antworten
1
Aufrufe
1.841
swa00
swa00
W
  • WuDiDong
Antworten
3
Aufrufe
767
jogimuc
J
J
  • JoEntwickler
Antworten
8
Aufrufe
1.357
JoEntwickler
J
Zurück
Oben Unten