2013-04-23 13 views
7

Moim żądaniem jest udostępnianie w serwisach społecznościowych. Tak, już zrobiłem z Facebookiem i Twitterem. Ale utknąłem z Google+. Mam następujący kod do udostępnienia na Google+, ale aplikacja forcecloses po uruchomieniu działalności. Dzieje się tak tylko wtedy, gdy Google+ app nie jest już zainstalowany na urządzeniu. Wiem, że ta zamiar udostępniania wymaga już zainstalowanego Google+, aby rozpocząć działanie.Siła aplikacji zostaje zamknięta, gdy google + nie jest zainstalowane.

Teraz to, co muszę zrobić, to przynajmniej poinformować użytkownika, że ​​dzielenie google+ wymaga już zainstalowany google+ app poprzez dialog lub tosty zamiast się siły zamknięte (jeśli to możliwe, klikając na przycisk OK w oknie dialogowym należy przekierować na google + na Google Play). Jeśli aplikacja Google + jest już zainstalowana, działa tak jak zwykle.

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); 

Każda pomoc jest doceniana. Z góry dziękuję.

+0

Spójrz na LogCat i używać debugger. Najprawdopodobniej zostanie zgłoszony nieobsługiwany wyjątek. – Axel

+0

@Axel Daje wyjątek ActivityNotFound, ponieważ nie może znaleźć działania na wskazanym urządzeniu. Ponieważ Google + nie jest zainstalowany. Proszę przeczytać moje pytanie i zasugerować. – ArtificialIntelligence

+0

Zanim ShareIntent sprawdzi, czy zainstalowano g +. Jeśli tak, to wykonaj swoje intencje. Jeśli nie, poinformuj użytkownika .. – Jviaches

Odpowiedz

5

UPDATE Poniższa odpowiedź jest nieaktualna. Teraz możesz sprawdzić, czy aplikacja Google+ jest zainstalowana za pośrednictwem biblioteki usług Google Play (dostępnej w pakiecie Android SDK). Zobacz here, aby uzyskać informacje na temat dodawania go do projektu.

Przykład:

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 
} 

OLD ODPOWIEDŹ

Można tworzyć jakąś sprawdzić, czy aplikacja Google+ jest zainstalowany:

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

To wydaje się być dobre. Spróbuję tego. Ale czy możliwe jest przekierowanie użytkownika do Google + w Google Play w jego aplikacji Sklep Play, jeśli kliknie przycisk OK, gdy nie ma już zainstalowanego Google +? – ArtificialIntelligence

+0

Aby to zrobić, użyj następującego kodu: '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

Dzięki, bardzo Ci pomógł, a druga odpowiedź zadziałała prawidłowo i daje mi gotowe okno dialogowe z ostrzeżeniem, które przekierowuje do aplikacji Google +, naciskając przycisk Pobierz google + tego okna dialogowego. + 1 – ArtificialIntelligence

Powiązane problemy