2012-07-06 7 views
7

Ho un app Android che crea i propri file in Google Drive con il tipo MIME application/vnd.test.typeunità API manifesto e l'integrazione con unità App

Vorrei fare i miei app gestire le richieste per questo tipo di file quando viene aperto dal Google Drive app come descritto here.

mia attività per gestire l'apertura del file è nel mio file manifesto come segue:

<activity android:name="DriveHandlerActivity" 
       android:label="@string/app_name" 
       android:icon="@drawable/icon" 
       android:exported="true" > 
     <meta-data android:name="com.google.android.apps.drive.APP_ID" 
        android:value="id=MY_ID"/> 
     <intent-filter > 
      <action android:name="com.google.android.apps.drive.DRIVE_OPEN"/> 
      <data android:mimeType="application/vnd.test.type"/> 
     </intent-filter> 
    </activity> 

Quando si tenta di aprire il file in Google Drive ottengo il "Apri con ..." dialogo come previsto con la mia app elencata come unica voce in grado di gestire questo tipo di file. Sfortunatamente dopo aver confermato l'azione, ottengo una finestra di dialogo che dice.

Error Dialog

La mia unica opzione è quindi di premere il pulsante "Annulla", che mi ritorna l'applicazione Google Drive.

Non sono del tutto convinto di avere i metadati corretti come l'ID si riferisce a usando nomi diversi a seconda di dove si guarda. Alcuni documentation calls it the App ID, alcuni lo chiamano ID progetto(See here at 26:44). Ho provato a utilizzare sia il "Project ID" come elencato nella mia Google Apis Console sia il numero del progetto (dall'URL) sulla stessa pagina. Ottengo lo stesso errore indipendentemente dal valore che scelgo come ID.

Per quanto ne so, il prossimo passo dovrebbe essere quello di gestire l'intento nella mia app, ma a causa dell'errore descritto, l'intento non arriva mai. Qualcuno può dirmi cosa sto facendo in modo errato?

+0

Stai utilizzando l'emulatore o un dispositivo reale? – Zamani

+0

reale Galaxy Nexus in esecuzione Jellybean –

risposta

3

Attualmente c'è un problema che richiede che l'applicazione sia elencata nel Chrome Webstore (anche solo per tester fidati) affinché il flusso Open With funzioni.

Tuttavia, anche se il problema è stato risolto, l'app non sarà in grado di accedere al file finché non verrà rilasciata l'API Google Play Services. L'unico modo per aggirare è richiedere l'autorizzazione per l'intero ambito di guida https://www.googleapis.com/auth/drive che non è consigliato ma utile per il debug.

Aggiornare questa risposta quando viene risolto il limite di Chrome Webstore.

+0

Eccellente grazie. Aggiorna i documenti con questo effetto, forse? Ho sprecato un sacco di tempo su questo e l'ho provato solo a causa della tua demo su IO. Puoi dirmi esattamente quale ID dovrei usare nel manifest. Non è chiaro per me. Grazie. –

+1

L'ID da utilizzare è quello del progetto API e fa anche parte dell'URL. Esempio: 'https://code.google.com/apis/console/#project: ' (dovrebbe essere solo numeri). Speravo che Google Play Services venisse rilasciato prima che gli sviluppatori iniziassero a provare: -/ – Alain

+0

Il requisito Chrome Webstore è ancora presente? Ho tentato di integrare l'unità, mi sono imbattuto nello stesso problema (si è verificato un errore interno). – Mendhak