2013-04-23 13 views
7

Il mio requisito è quello di condividere sui siti di social networking. Quindi, ho già fatto con Facebook e Twitter. Ma sono bloccato con Google+. Ho il seguente codice da condividere su Google+, ma l'app forcecloses quando inizio attività. Ciò si verifica solo quando lo Google+ app non è già installato sul dispositivo. So che questo intento di condivisione richiede che Google+ sia già installato per avviare l'attività.App forza si chiude quando Google + non è installato

Ora quello che devono fare è almeno per informare l'utente che la condivisione google+ richiede già installato google+ app attraverso il dialogo o pane tostato invece di ottenere la forza chiusa (se possibile cliccando su OK nella finestra di dialogo dovrebbe reindirizzare al google + su Google Play). Se l'app Google + è già installata, continua come al solito.

Intent shareIntent = ShareCompat.IntentBuilder.from(this) 
      .setText("Hello there! This is a pic of the lazy cat") 
      .setType("image/jpeg") 
      .setStream(Uri.parse(path)) 
      .getIntent() 
      .setPackage("com.google.android.apps.plus"); 
startActivity(shareIntent); 

Qualsiasi aiuto è apprezzato. Grazie in anticipo.

+0

sguardo al logcat e utilizzare un debugger. Molto probabilmente viene generata un'eccezione non gestita. – Axel

+0

@Axel Fornisce ActivityNotFound Exception in quanto non è in grado di trovare l'attività sul dispositivo che ho specificato. Perché Google + non è installato. Si prega di leggere la mia domanda e suggerire. – ArtificialIntelligence

+0

Prima di ShareIntent, verificare se g + è installato. Se è così, esegui il tuo intento. Se No, informa l'utente .. – Jviaches

risposta

5

UPDATE La risposta è obsoleta. Ora puoi verificare se l'app Google+ è installata tramite la raccolta di servizi di Google Play (disponibile tramite Android SDK). Vedere here per informazioni su come aggiungerlo al progetto.

Esempio:

int errorCode = GooglePlusUtil.checkGooglePlusApp(mContext); 
if (errorCode != GooglePlusUtil.SUCCESS) { 
    //Google+ is either not present or another error occured, show the error dialog 
    GooglePlusUtil.getErrorDialog(errorCode, this, 0).show(); 
} 
else{ 
    //Your Google+ related code here 
} 

risposta Old

È possibile creare una sorta di controllo per vedere se l'applicazione Google+ è installato:

public void loadGooglePlus() 
{ 
    if(isGooglePlusInstalled()) 
    { 
     Intent shareIntent = ShareCompat.IntentBuilder.from(this) 
       .setText("Hello there! This is a pic of the lazy cat") 
       .setType("image/jpeg") 
       .setStream(Uri.parse(path)) 
       .getIntent() 
       .setPackage("com.google.android.apps.plus"); 
     startActivity(shareIntent); 
    } 
    else{ 
     //Notify user 
    } 
} 

public boolean isGooglePlusInstalled() 
{ 
    try 
    { 
     getPackageManager().getApplicationInfo("com.google.android.apps.plus", 0); 
     return true; 
    } 
    catch(PackageManager.NameNotFoundException e) 
    { 
     return false; 
    } 
} 
+0

Questo sembra essere buono. Provarlo Ma è possibile reindirizzare l'utente a google + su Google Play nella sua app Play Store se fa clic sul pulsante OK quando non ha già installato Google +? – ArtificialIntelligence

+0

Per fare ciò, utilizzare il seguente codice: 'Intent myIntent = new Intent (Intent.ACTION_VIEW, Uri.parse (" https://play.google.com/store/apps/details?id=com.google.android .apps.plus ")); startActivity (myIntent); –

+0

Grazie, sei stato di grande aiuto e l'altra risposta ha funzionato api wise e mi dà la finestra di avviso pronta che reindirizza a google + app premendo su google + pulsante di quella finestra di dialogo. + 1 – ArtificialIntelligence

Problemi correlati