Autore Topic: aprire adobereader da una mia app (intent mime type)  (Letto 1422 volte)

Offline ALEX88-ANDR0!D

  • Utente normale
  • ***
  • Post: 173
  • The Special One
  • Respect: +13
    • Google+
    • droidev88
    • Mostra profilo
  • Dispositivo Android:
    HTC DESIRE HD
  • Sistema operativo:
    WINDOWS 7
aprire adobereader da una mia app (intent mime type)
« il: 30 Gennaio 2011, 18:11:38 CET »
0
ciao a tutti , ho un problema ... sto creando un app , nella quale vorrei aggiungere una funzionalità ...
aprire "adobe reader" dopo che clicco su un pulsante dentro un option-menù non sono molto esperto , ma per aprire un programma da un'altro bisogna usare gli intet e oltre vanno specificati i mime type ? vero , mi potete aiutare un sopratutto nella ricerca di quest'ultimi ? ... vi rignarzio ancora .

guardando un po' in giro ho trovato
Citazione
AFAIK, Adobe has not documented any public Intents it wants developers to use.

You can try an ACTION_VIEW Intent with a Uri pointing to the file (either on the SD card or MODE_WORLD_READABLE in your app-local file store) and a MIME type of "application/pdf".
quihttp://stackoverflow.com/questions/2916108/android-open-a-pdf-from-my-app-using-the-built-in-pdf-viewer
http://forums.adobe.com/thread/732224
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !

Offline Daystrom

  • Utente junior
  • **
  • Post: 90
  • Respect: +13
    • Mostra profilo
    • Starfleet
  • Dispositivo Android:
    HTC Magic + HTC Desire HD + Nexus S
  • Play Store ID:
    Daystrom
  • Sistema operativo:
    WXP
Re:aprire adobereader da una mia app (intent mime type)
« Risposta #1 il: 30 Gennaio 2011, 18:35:18 CET »
+1
ciao a tutti , ho un problema ... sto creando un app , nella quale vorrei aggiungere una funzionalità ...
aprire "adobe reader" dopo che clicco su un pulsante dentro un option-menù non sono molto esperto , ma per aprire un programma da un'altro bisogna usare gli intet e oltre vanno specificati i mime type ? vero , mi potete aiutare un sopratutto nella ricerca di quest'ultimi ? ... vi rignarzio ancora .

Ciao,
leggi questo post di bradipao:
http://www.anddev.it/index.php/topic,1997.msg13230.html#msg13230

e poi prova il codice presentato a questa pagina:
http://stackoverflow.com/questions/2883355/how-to-render-pdf-in-android/

Offline ALEX88-ANDR0!D

  • Utente normale
  • ***
  • Post: 173
  • The Special One
  • Respect: +13
    • Google+
    • droidev88
    • Mostra profilo
  • Dispositivo Android:
    HTC DESIRE HD
  • Sistema operativo:
    WINDOWS 7
Re:aprire adobereader da una mia app (intent mime type)
« Risposta #2 il: 30 Gennaio 2011, 20:31:35 CET »
0
inanzitutto ti ringrazio , più tardi provo ad implementare il tutto ed fare un test ... vi tengo informati sul risultato poi ... ciao
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !

Offline ALEX88-ANDR0!D

  • Utente normale
  • ***
  • Post: 173
  • The Special One
  • Respect: +13
    • Google+
    • droidev88
    • Mostra profilo
  • Dispositivo Android:
    HTC DESIRE HD
  • Sistema operativo:
    WINDOWS 7
Re:aprire adobereader da una mia app (intent mime type)
« Risposta #3 il: 30 Gennaio 2011, 23:35:11 CET »
0
premetto che pultroppo non ho risolto , ma ci siamo quasi ...

come primo test ho provato a ricreare l'esempio del secondo link ... posto il file .java , e main.xml , e anche il progetto )
Codice (Java): [Seleziona]
package it.android.openpdf;



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.view.View;
import android.widget.Button;
import android.widget.Toast;

public class OpenPdf extends Activity {
    /** Called when the activity is first created. */
         @Override
            public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.main);

                Button button = (Button) findViewById(R.id.OpenPdfButton);
                button.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        File file = new File("/sdcard/example.pdf");

                        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 {
                                startActivity(intent);
                            }
                            catch (ActivityNotFoundException e) {
                                Toast.makeText(OpenPdf.this,
                                    "No Application Available to View PDF",
                                    Toast.LENGTH_SHORT).show();
                            }
                        }
                    }
                });
            }
        }
il main
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:orientation="vertical"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   >

<Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/OpenPdfButton" android:text="test pdf"></Button>
</LinearLayout>
tralaltro nel androidmanifest ho aggiunto il permesso per scrivere su leggere/scrivere su external storage (sd) e internet anche se credo non servono ... cmq ho fatto un test è la app parte , ma cliccando sul pulsante non succede nulla ,
(devo dire che sulle proprietà del pulsante in "onclick" non so bene cosa mittere , ho fatto due test inserendo il testo "uri "ed "file" sia minuscolo che maiusclo , ma nulla ...


 ho lasciato stare l'esempio è ho cercato di implementare il codice nella mia app , nel seguente modo posto sotto il file .java
Codice (Java): [Seleziona]
Intent intent4 = new Intent(Intent.ACTION_VIEW);
         intent.setType("application/pdf");
         intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
         
         Intent intent =  new Intent(Intent.ACTION_VIEW,Uri.parse("http://.maps.google.com/maps?f=d&saddr="));
                intent.setComponent(new ComponentName("com.google.android.apps.maps",   "com.google.android.maps.MapsActivity"));
               
                Intent intent2 = new Intent(this, PInfo.class);
                Intent intent3 = new Intent(this, pagina2.class);
               
         Intent intent4 = new Intent(Intent.ACTION_VIEW);
         intent.setType("application/pdf");
         intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

                // Impostiamo l'ordine iniziale
                int order = Menu.FIRST;
                // Creiamo il primo gruppo di MenuItem
                int GROUPA = 0;
                menu.add(GROUPA, 0, order++, "prova1").setIntent(intent);
                menu.add(GROUPA, 1, order++, "prova2").setIntent(intent3);
                // Creiamo il secondo gruppo che è checkable.
                int GROUPB = 1;
                menu.add(GROUPB, 2, order++, "Itemb1");
                menu.add(GROUPB, 3, order++, "apri pdf").setIntent(intent4);
                // Creiamo il terzo gruppo
                int GROUPC = 2;
                menu.add(GROUPC, 4, order++, "Info").setIntent(intent2);
                menu.add(GROUPC, 5, order++, "Disclamer");             
                // Visualizziamo il Menu
                return true;
        }
  quando vado a cliccare sul pulsante "apri pdf" nell'option menù mi appare le varie possibilità su come completare l'azione ( application hardware , impostazioni chiamate , infoapplicazione , market , process information , sotto un chekbox per selezionare "usa come predefinita per questa azione "  quindi manca poco per risolvere , mi servirebbe che apparisse adobe reader o cmq anche altri lettori pdf ... che ho installato ... avete dei consigli , grazie mille ancora
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !

Offline Daystrom

  • Utente junior
  • **
  • Post: 90
  • Respect: +13
    • Mostra profilo
    • Starfleet
  • Dispositivo Android:
    HTC Magic + HTC Desire HD + Nexus S
  • Play Store ID:
    Daystrom
  • Sistema operativo:
    WXP
Re:aprire adobereader da una mia app (intent mime type)
« Risposta #4 il: 31 Gennaio 2011, 00:06:24 CET »
+2
Ciao,
innanzitutto nel codice:
Codice (Java): [Seleziona]
Intent intent4 = new Intent(Intent.ACTION_VIEW);
intent.setType("application/pdf");
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

usi l'oggetto sbagliato, dovrebbe essere così:
Codice (Java): [Seleziona]
Intent intent4 = new Intent(Intent.ACTION_VIEW);
intent4.setType("application/pdf");
intent4.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

Inoltre, guardando l'esempio, manca il nome con relativo path del file da aprire, vedi le istruzioni:

File file = new File("/sdcard/example.pdf");

e il passaggio del file all'intent:

Uri path = Uri.fromFile(file);
intent4.setDataAndType(path, "application/pdf");

Spero che così funzioni...


« Ultima modifica: 31 Gennaio 2011, 00:08:12 CET da Daystrom »

Offline ALEX88-ANDR0!D

  • Utente normale
  • ***
  • Post: 173
  • The Special One
  • Respect: +13
    • Google+
    • droidev88
    • Mostra profilo
  • Dispositivo Android:
    HTC DESIRE HD
  • Sistema operativo:
    WINDOWS 7
Re:aprire adobereader da una mia app (intent mime type)
« Risposta #5 il: 31 Gennaio 2011, 12:57:12 CET »
0
ciao ,
Off-Topic:
usi l'oggetto sbagliato, dovrebbe essere così:
Codice (Java): [Seleziona]
Intent intent4 = new Intent(Intent.ACTION_VIEW);
intent4.setType("application/pdf");
intent4.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
;-) :D già ... nel copia e incolla poi mi sono dimenticato di aggiornare il nome dell'oggetto da intet a intent4 , non è apparso nessun errore perche esiste intent ...

per quano riguarda sotto , la mancanza
Off-Topic:
File file = new File("/sdcard/example.pdf");

e il passaggio del file all'intent:

Uri path = Uri.fromFile(file);
intent4.setDataAndType(path, "application/pdf");

era voluta  :-) , (errore mio... non ho scritto nel topic in maniera chiara volevo aprire adobereader  , ma non direttamente un file  ma il programma così da avere una lista  dei pdf presenti nella sd ...

quindi con l'utilizzo del solo codice
 
Codice (Java): [Seleziona]
 
Intent intent4 = new Intent(Intent.ACTION_VIEW);
intent4.setType("application/pdf");
intent4.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
sono riuscito ad aprire adobe nella schermata principale

 aggiungendo il codice nella di sopra  ed ovviamente eliminando
Codice (Java): [Seleziona]
intent4.setType("application/pdf")  che sarebbe stato un doppione
quindi questo codice
Codice (Java): [Seleziona]
 
Intent intent4 = new Intent(Intent.ACTION_VIEW);
File file = new File("/sdcard/download/nomefilechevoglioaprire.pdf");
Uri path = Uri.fromFile(file);
intent4.setDataAndType(path, "application/pdf");
intent4.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
parte correttamente , ma subito il pdf prescelto .

Grazie mille ancora Daystrom ! :-) ;-)

CIAO ... TOPIC RISOLTO ...
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !