2013-04-23 12 views
7

私の要件はソーシャルネットワーキングサイトで共有することです。だから、私は既にFacebookとTwitterでやりました。しかし、私はGoogle+で立ち往生しています。 Google+で共有する次のコードを持っていますが、アクティビティを開始するときはforceclosesというアプリがあります。これは、すでにGoogle+ appがデバイスにインストールされていない場合にのみ発生します。この共有の目的は、アクティビティを開始するためにGoogle+が既にインストールされている必要があることです。Google +がインストールされていないとアプリケーションが強制終了する

今、私は何をする必要があるかは、少なくとも代わりに力を得ることのgoogle+共有がすでにダイアログまたはトーストを通じてgoogle+ appをインストールする必要がユーザに通知することで可能ならば、ダイアログで[OK]をクリックして(閉じた状態では+にGoogleにリダイレクトする必要がありますグーグルプレイ)。 Google +アプリが既にインストールされている場合は、通常通りになります。

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

助けてください。前もって感謝します。

+0

ルックと使用デバッガ。ほとんどの場合、未処理の例外がスローされます。 – Axel

+0

@Axel指定したデバイス上のアクティビティを見つけることができないため、ActivityNotFound Exceptionが発生します。 google +がインストールされていないためです。私の質問を読んでお勧めします。 – ArtificialIntelligence

+0

ShareIntentの前に、g +がインストールされているかどうかを確認します。そうであれば、あなたの意図を実行してください。いいえの場合は、ユーザーにお知らせください。 – Jviaches

答えて

5

更新 以下の回答は旧式です。 Google+アプリがGoogle Playサービスライブラリ(Android SDKから利用可能)を通じてインストールされているかどうかを確認できるようになりました。プロジェクトに追加する方法については、hereを参照してください。

例:

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 ANSWER

あなたがGoogle +のアプリがインストールされているかどうかを確認するために、チェックのいくつかの並べ替えを作成することができ

:logcatで

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

これは良いと思われる。試してみるよ。しかし、グーグル+が既にインストールされていないときに大丈夫なボタンをクリックすれば、彼のプレイストアアプリでグーグルプレイをグーグルプレイにリダイレクトすることは可能ですか? – ArtificialIntelligence

+0

これを行うには、次のコードを使用します。 '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

おかげさまで、あなたは大きな助けとなり、他の答えはapi wiseとなり、ダイアログのgoogle +ボタンを押してGoogle +アプリにリダイレクトする準備ができた警告ダイアログが表示されます。 – ArtificialIntelligence

関連する問題