我的要求是在社交网站上分享。所以,我已经完成了Facebook和Twitter。但我被Google+
困住了。我在Google+
上分享了以下代码,但在我开始活动时分享了应用forcecloses
。仅当设备上尚未安装Google+ app
时才会出现这种情况。我知道此分享意图需要已安装Google+才能开始此活动。
现在我需要做的是至少通过对话框或吐司通知用户google+
共享需要已经安装google+ app
而不是强制关闭(如果可能的话,点击确定对话框应重定向到Google Play上的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 :(得分:5)
<强>更新强> 以下答案已过时。您现在可以通过Google Play服务库检查Google+应用是否已安装(可通过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+应用:
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;
}
}