subir reconoce perfil google fotos etiquetar crear compartir compartido como caras album android android-intent google-plus

android - reconoce - google+ perfil



¿Cómo compartir imágenes en google Plus a través de una aplicación de Android? (6)

Ya probé este código, pero no vi una foto compartida en mi cuenta.

File file = new File("sdcard/1346249742258.jpg"); String photoUri = null; photoUri = file.getAbsolutePath(); Intent shareIntent = ShareCompat.IntentBuilder.from(this) .setText("Sharing an image on Google!").setType("image/jpeg") .setStream(Uri.parse(photoUri)).getIntent() .setPackage("com.google.android.apps.plus"); startActivity(shareIntent);


HEy Deepika no está obteniendo el archivo ni la excepción porque la aplicación google plus no está presente en el dispositivo de la forma que ha codificado, solo para iniciar la aplicación nativa desde el dispositivo

funcionará solo si el ap nativo está presente

otherway es tener google plus sdk, que es un pequeño archivo jar con el que puedes compartir la imagen

https://developers.google.com/+/mobile/android/


Integre la actividad ForGooglePlus en su código y coloque la URL (imageUrl), Descripción (texto de descripción) y contentUrl (URL) para la misma. Nota: el código de abajo también funcionó en mi aplicación.

public class ForGooglePlus extends Activity { private String imageUrl, description, contentUrl; private Context mContext; private int REQUEST_FOR_GOOGLE_PLUS = 0; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); mContext = this; imageUrl = getIntent().getStringExtra("URL"); description = getIntent().getStringExtra("Description"); contentUrl = getIntent().getStringExtra("contentUrl"); if (isPackageInstalled("com.google.android.apps.plus", mContext)) { if (imageUrl == null) { imageUrl = ""; } if (description == null) { description = ""; } // Intent shareIntent = new PlusShare.Builder(this) // .setType("image/jpeg") // .setText(description) // .setStream(getUriFromUrl(imageUrl)) // .setContentUrl(Uri.parse(contentUrl)) // .getIntent(); Uri uri = getUriFromUrl(imageUrl); if (uri != null) { Intent shareIntent = ShareCompat.IntentBuilder .from(ForGooglePlus.this) .setText(description + "/n" + contentUrl) .setType("image/jpeg").setStream(uri).getIntent() .setPackage("com.google.android.apps.plus"); startActivityForResult(shareIntent, REQUEST_FOR_GOOGLE_PLUS); } else { Intent shareIntent = ShareCompat.IntentBuilder .from(ForGooglePlus.this) .setText(description + "/n" + contentUrl) .setType("image/jpeg").getIntent() .setPackage("com.google.android.apps.plus"); startActivityForResult(shareIntent, REQUEST_FOR_GOOGLE_PLUS); } } else { Toast.makeText(mContext, "Application not found", Toast.LENGTH_LONG) .show(); finish(); } } public Uri getUriFromUrl(String thisUrl) { try { Bitmap inImage = ImageLoader.getInstance().loadImageSync(thisUrl); ByteArrayOutputStream bytes = new ByteArrayOutputStream(); inImage.compress(Bitmap.CompressFormat.JPEG, 100, bytes); String path = Images.Media.insertImage( mContext.getContentResolver(), inImage, "Title", null); return Uri.parse(path); } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } return null; } private boolean isPackageInstalled(String packagename, Context context) { PackageManager pm = context.getPackageManager(); try { pm.getPackageInfo(packagename, PackageManager.GET_ACTIVITIES); return true; } catch (NameNotFoundException e) { return false; } } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { // TODO Auto-generated method stub super.onActivityResult(requestCode, resultCode, data); if (requestCode == REQUEST_FOR_GOOGLE_PLUS) { if (resultCode == RESULT_OK) { finish(); } else { Toast.makeText(mContext, mContext.getString(R.string.msg_gp_cancel), Toast.LENGTH_LONG).show(); finish(); } } } }


La aplicación de Google+ solo admite contenido: // URIs . Deberá utilizar la API MediaStore para este propósito.

File tmpFile = new File("/path/to/image"); final String photoUri = MediaStore.Images.Media.insertImage( getContentResolver(), tmpFile.getAbsolutePath(), null, null); Intent shareIntent = ShareCompat.IntentBuilder.from(this) .setText("Hello from Google+!") .setType("image/jpeg") .setStream(Uri.parse(photoUri)) .getIntent() .setPackage("com.google.android.apps.plus");


No uses el camino absoluto.

OnActivityResult () usa esto después de capturar la imagen de la cámara.

Uri photoUri = intent.getData(); Intent shareIntent = ShareCompat.IntentBuilder.from(this) .setText("Hello From Google+!") .setType("image/jpeg") .setStream(photoUri) .getIntent() .setPackage("com.google.android.apps.plus"); startActivity(shareIntent);

Esto es trabajo para mí.


Puede compartir la imagen utilizando debajo de la API. Para ver los pasos detallados ver el tutorial

http://androidsrc.net/integrating-google-plus-sign-in-into-your-android-application/

/** * API to process media post request start activity with MIME type as video * and image */ private void processShareMedia() { Intent photoPicker = new Intent(Intent.ACTION_PICK); photoPicker.setType("video/*, image/*"); startActivityForResult(photoPicker, PICK_MEDIA_REQUEST_CODE); } /** * Handle results for your startActivityForResult() calls. Use requestCode * to differentiate. */ @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == PICK_MEDIA_REQUEST_CODE) { // If picking media is success, create share post using // PlusShare.Builder if (resultCode == RESULT_OK) { Uri selectedImage = data.getData(); ContentResolver cr = this.getContentResolver(); String mime = cr.getType(selectedImage); PlusShare.Builder share = new PlusShare.Builder(this); share.setText("Hello from AndroidSRC.net"); share.addStream(selectedImage); share.setType(mime); startActivityForResult(share.getIntent(), SHARE_MEDIA_REQUEST_CODE); } } }


También estoy publicando la imagen en google plus a través de Android con la intención de tomar una captura de pantalla del dispositivo y publicarlo en google plus, usé su código. Estoy obteniendo la excepción FileNotFoundException () y como mencionó para usar la ruta absoluta, obtuve un error. El método getAbsolutePath () no está definido para el tipo String. Mi código se proporciona a continuación. Por favor, sugiérame la corrección en el código.

package com.testproject; import java.io.File; import java.io.FileNotFoundException; import android.app.Activity; import android.content.Intent; import android.graphics.Bitmap; import android.net.Uri; import android.os.Bundle; import android.provider.MediaStore; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.RelativeLayout; public class TestProjectActivity extends Activity { private Button share_btn = null; private String url=null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); share_btn = (Button)findViewById(R.id.share_btn); share_btn.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub Intent intent=new Intent(TestProjectActivity.this,ShareDialogActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivityForResult(intent, 1); } }); } protected void onActivityResult(int requestCode, int resultCode, Intent data) { String url =takeScreenShot(); super.onActivityResult(requestCode, resultCode, data); switch (resultCode) { case 1: String share = data.getExtras().getString("NAME"); if(share!=null && share.equalsIgnoreCase("Share with Instagram")){ Intent i = new Intent(Intent.ACTION_SEND); i.setType("image/jpg"); i.putExtra(Intent.EXTRA_STREAM, Uri.parse(url)); startActivity(Intent.createChooser(i, "Share Image")); } if(share!=null && share.equalsIgnoreCase("Share with GooglePlus")){ Intent shareIntent = new Intent(Intent.ACTION_SEND); File tmpFile = new File(url); String photoUri=null; photoUri = url.getAbsolutePath(); try { photoUri = MediaStore.Images.Media.insertImage( getContentResolver(), tmpFile.getAbsolutePath(), null, null); shareIntent = ShareCompat.IntentBuilder.from(this) .setText("Hello from Google+!") .setType("image/jpeg") .setStream(Uri.parse(photoUri)) .getIntent() .setPackage("com.google.android.apps.plus"); startActivity(shareIntent); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } break; } } public String takeScreenShot(){ try{ RelativeLayout view = (RelativeLayout)findViewById(R.id.icflag_layout); View v1 = view.getRootView(); System.out.println("Root View : "+v1); v1.setDrawingCacheEnabled(true); Bitmap bm = v1.getDrawingCache(); url =MediaStore.Images.Media.insertImage(getContentResolver(), bm,"screeshot.jpg", 1233+ ".jpg Card Image"); } catch(OutOfMemoryError e){ } return url; } }

Gracias y saludos Nitin