Intereting Posts
Firebase + Android – Уведомления ChildAdded – Как получить только новые дети? Чтение писем Gmail с помощью SDK для Android В конечном итоге деятельность по салфетки вправо? Использовать обработчик для публикации в пользовательском интерфейсе Как вы можете определить, когда был составлен макет? Отключить кнопку при изменении текстовых полей Как скрыть папку в sdcard в android Ошибка рендеринга; Не удалось разрешить @ id / search_edit_frame Открыть приложение для Android, когда подключено к Интернету, в противном случае не будет отображаться сообщение о подключении к Интернету Отслеживать событие Admob в Google Analytics Переход от одного действия к следующему в Android Перевернутый массив байтов предварительного просмотра камеры Кнопка Run вычеркнута: Android Studio Могу ли я использовать AlarmManager с LocalBroadcastManager на Android? «TAG» имеет частный доступ в «android.support.v4.app.FragmentActivity»

Как передать изображение в Google Plus через приложение Android?

Я уже пробовал этот код, но я не видел фотографии, разделяемой в моей учетной записи.

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

Solutions Collecting From Web of "Как передать изображение в Google Plus через приложение Android?"

Интегрируйте действие ForGooglePlus в свой код и поместите URL (imageUrl), описание (текст описания) и contentUrl (URL) для него. Примечание. Следующий код также работал в моем приложении.

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

Приложение Google+ поддерживает только контент: // URI . Для этого вам понадобится использовать MediaStore API.

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

Я также размещаю изображение на google plus через android, используя намерение. Я снимаю снимок экрана и отправляю его на google plus, я использовал ваш код, я получаю исключение FileNotFoundException (), и, как вы говорите, чтобы использовать абсолютный путь, я получил ошибку, Метод getAbsolutePath () не определен для типа String, мой код приведен ниже, пожалуйста, предложите мне коррекцию в коде

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

Благодарю вас и уважаю Нитина

Не используйте абсолютный путь.

OnActivityResult () использует это после захвата изображения с камеры.

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

Это работает на меня.

HEY Deepika вы получаете файл и не обнаружили исключение, потому что это приложение google plus отсутствует на устройстве, так как вы закодированы, это просто запустить собственное приложение с устройства

Он будет работать только в том случае, если нативный ap будет присутствовать

Иначе будет иметь google plus sdk, который представляет собой небольшой файл jar с тем, что вы можете обмениваться имиджем

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

Вы можете обмениваться изображениями, используя ниже api. Подробные инструкции по проверке шагов

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