Comment puis-je publier sur Twitter avec Intent Action_send?

J'ai eu du mal à envoyer du texte de mon application à Twitter.

Le code ci-dessous fonctionne pour afficher une liste d'applications telles que Bluetooth, Gmail, Facebook et Twitter, mais lorsque je sélectionne Twitter, il ne remplit pas le texte comme je l'aurais prévu.

  • Android: manipulation du bouton arrière pendant l'asynctask
  • Obtenir une date de datepicker en utilisant dialoguefragment
  • Erreur de charpie sur Okio
  • Impossible de mettre à jour le plugin Android Studio gradle 1.4
  • Comment changer la couleur NoteBar selon le nombre d'étoiles?
  • Android: Fragment ne peut pas faire l'activité
  • Je sais qu'il y a des problèmes à faire avec Facebook, mais je dois faire quelque chose de mal pour qu'il ne fonctionne pas avec Twitter.

    Intent intent = new Intent(Intent.ACTION_SEND); intent.setType("text/plain"); intent.putExtra(Intent.EXTRA_TEXT, "Example Text"); startActivity(Intent.createChooser(intent, "Share Text")); 

    5 Solutions collect form web for “Comment puis-je publier sur Twitter avec Intent Action_send?”

    J'utilise cet extrait sur mon code:

     Intent tweetIntent = new Intent(Intent.ACTION_SEND); tweetIntent.putExtra(Intent.EXTRA_TEXT, "This is a Test."); tweetIntent.setType("text/plain"); PackageManager packManager = getPackageManager(); List<ResolveInfo> resolvedInfoList = packManager.queryIntentActivities(tweetIntent, PackageManager.MATCH_DEFAULT_ONLY); boolean resolved = false; for(ResolveInfo resolveInfo: resolvedInfoList){ if(resolveInfo.activityInfo.packageName.startsWith("com.twitter.android")){ tweetIntent.setClassName( resolveInfo.activityInfo.packageName, resolveInfo.activityInfo.name ); resolved = true; break; } } if(resolved){ startActivity(tweetIntent); }else{ Intent i = new Intent(); i.putExtra(Intent.EXTRA_TEXT, message); i.setAction(Intent.ACTION_VIEW); i.setData(Uri.parse("https://twitter.com/intent/tweet?text="+urlEncode(message)); startActivity(i); Toast.makeText(this, "Twitter app isn't found", Toast.LENGTH_LONG).show(); } private String urlEncode(String s) { try { return URLEncoder.encode(s, "UTF-8"); }catch (UnsupportedEncodingException e) { Log.wtf(TAG, "UTF-8 should always be supported", e); return ""; } } 

    J'espère que cela aide.

    Vous pouvez simplement ouvrir l'URL avec le texte et l'application Twitter le fera. 😉

     String url = "http://www.twitter.com/intent/tweet?url=YOURURL&text=YOURTEXT"; Intent i = new Intent(Intent.ACTION_VIEW); i.setData(Uri.parse(url)); startActivity(i); 

    Et il ouvrira également le navigateur pour se connecter au tweet si l'application Twitter n'est pas trouvée.

    Tout d'abord, vous devez vérifier si l'application Twitter installée sur le périphérique ou non, puis partager le texte sur Twitter:

     try { // Check if the Twitter app is installed on the phone. getActivity().getPackageManager().getPackageInfo("com.twitter.android", 0); Intent intent = new Intent(Intent.ACTION_SEND); intent.setClassName("com.twitter.android", "com.twitter.android.composer.ComposerActivity"); intent.setType("text/plain"); intent.putExtra(Intent.EXTRA_TEXT, "Your text"); startActivity(intent); } catch (Exception e) { Toast.makeText(getActivity(),"Twitter is not installed on this device",Toast.LENGTH_LONG).show(); } 

    Essayez cela, je l'ai utilisé et j'ai travaillé très bien

      Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://twitter.com/intent/tweet?text=....")); startActivity(browserIntent); 

    Pour partager du texte et de l' image sur Twitter , une version plus contrôlée du code est ci-dessous, vous pouvez ajouter d'autres méthodes pour partager avec WhatsApp , Facebook … Ceci est pour une application officielle et n'ouvre pas le navigateur si l'application n'existe pas.

     public class IntentShareHelper { public static void shareOnTwitter(AppCompatActivity appCompatActivity, String textBody, Uri fileUri) { Intent intent = new Intent(Intent.ACTION_SEND); intent.setType("text/plain"); intent.setPackage("com.twitter.android"); intent.putExtra(Intent.EXTRA_TEXT,!TextUtils.isEmpty(textBody) ? textBody : ""); if (fileUri != null) { intent.putExtra(Intent.EXTRA_STREAM, fileUri); intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); intent.setType("image/*"); } try { appCompatActivity.startActivity(intent); } catch (android.content.ActivityNotFoundException ex) { ex.printStackTrace(); showWarningDialog(appCompatActivity, appCompatActivity.getString(R.string.error_activity_not_found)); } } public static void shareOnWhatsapp(AppCompatActivity appCompatActivity, String textBody, Uri fileUri){...} private static void showWarningDialog(Context context, String message) { new AlertDialog.Builder(context) .setMessage(message) .setNegativeButton(context.getString(R.string.close), new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }) .setCancelable(true) .create().show(); } } 

    Pour obtenir Uri à partir du fichier, utilisez la classe ci-dessous:

     public class UtilityFile { public static @Nullable Uri getUriFromFile(Context context, @Nullable File file) { if (file == null) return null; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { try { return FileProvider.getUriForFile(context, "com.my.package.fileprovider", file); } catch (Exception e) { e.printStackTrace(); return null; } } else { return Uri.fromFile(file); } } // Returns the URI path to the Bitmap displayed in specified ImageView public static Uri getLocalBitmapUri(Context context, ImageView imageView) { Drawable drawable = imageView.getDrawable(); Bitmap bmp = null; if (drawable instanceof BitmapDrawable) { bmp = ((BitmapDrawable) imageView.getDrawable()).getBitmap(); } else { return null; } // Store image to default external storage directory Uri bmpUri = null; try { // Use methods on Context to access package-specific directories on external storage. // This way, you don't need to request external read/write permission. File file = new File(context.getExternalFilesDir(Environment.DIRECTORY_PICTURES), "share_image_" + System.currentTimeMillis() + ".png"); FileOutputStream out = new FileOutputStream(file); bmp.compress(Bitmap.CompressFormat.PNG, 90, out); out.close(); bmpUri = getUriFromFile(context, file); } catch (IOException e) { e.printStackTrace(); } return bmpUri; } } 

    Pour écrire FileProvider , utilisez ce lien: https://github.com/codepath/android_guides/wiki/Sharing-Content-with-Intents

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.