2017-02-15 16 views
0

Я запрограммировал приложение, которое может отправить сообщение в твиттер с прикрепленным изображением. Оно работает! Я тестировал его на нескольких устройствах и просил других людей сделать то же самое. Он даже работает для прямого сообщения, когда выбран твиттер. Однако это не работает, когда выбрано «Прямое сообщение». Это заставляет пользователя выбирать друга напрямую, а не выбирать его через «Прямое сообщение» (что действительно странно), в противном случае изображение не прилагается. Просто взгляните на скриншот:Как я могу прикрепить изображение к «Прямому сообщению» в twitter Android?

Screenshot of intent chooser

Вот мой код программирования Xamarin Android. Дайте мне знать, как это исправить. В настоящее время все варианты работают, даже выбрав моего друга , но не «Прямое сообщение». Мне также нужно сказать, что у меня нет никаких проблем с текстом twitter, который я ожидаю увидеть в твиттере.

 public bool TweetImage(Bitmap imageToTweet) 
    { 
     var messageIntent = context.FindMessageIntent(this.twitterConstants.PackageName); 
     if (messageIntent == null) 
     { 
      return false; 
     } 
     string outputFileBMP = SaveBitmap(imageToTweet); 
     context.Tweet(messageIntent, outputFileBMP, this.twitterConstants.DefaultTwitterText, this.twitterConstants.ChooserMessage); 
     return true; 
    } 

и

 public static Intent FindMessageIntent(this ContextWrapper contextWrapper, params string[] packageNames) 
    { 
     Intent wantedIntent = new Intent(); 
     wantedIntent.SetType("text/plain"); 

     var resolveInfos = contextWrapper.PackageManager.QueryIntentActivities(wantedIntent, PackageInfoFlags.MatchDefaultOnly); 

     var result = (from r in resolveInfos 
         from p in packageNames 
         where p == r.ActivityInfo.PackageName 
         select p).FirstOrDefault(); 

     if (result != null) 
     { 
      wantedIntent.SetPackage(result); 
      return wantedIntent; 
     } 
     return null; 
    } 

и

 public static void Tweet(this ContextWrapper contextWrapper, Intent messageIntent, string filePath = null, string message = null, string chooserMessage = null) 
    { 
     if (filePath != null) 
     { 
      using (var file = new Java.IO.File(filePath)) 
      { 
       messageIntent.PutExtra(Intent.ExtraStream, Android.Net.Uri.FromFile(file)); 
      } 
     } 
     if (message != null) 
     { 
      messageIntent.PutExtra(Intent.ExtraText, message); 
     } 

     if (chooserMessage != null) 
     { 
      using (var chooser = Intent.CreateChooser(messageIntent, chooserMessage)) 
      { 
       contextWrapper.StartActivity(chooser); 
      } 
      return; 
     } 
     contextWrapper.StartActivity(messageIntent); 
    } 

Пожалуйста, обратите внимание, что я использую Android и нужно решение, основанное на Android (на основе намерения).

+0

Возможный дубликат [Как отправить изображение в прямом сообщении?] (Http://stackoverflow.com/questions/37345016/how-to-send-an-image-in-direct-message) –

ответ

0

К сожалению, Twitter don't provide API access for uploading images via DM.

Если вы можете использовать частный API Twitter, вы должны иметь возможность подключить media_id к вашему DM. Но кроме этого вам не повезло.

Извините.

+0

Я думаю, что я уже удалось загрузить изображения через DM. Это именно то, что происходит, когда я выбираю друга. Это работает, не беспокойтесь об этом. Я просто пытаюсь заставить его работать в ситуациях, когда не выбран друг, а просто «Прямое сообщение». – Daan