2010-10-31 82 views
0

使用ACTION_SEND,可以将消息发布到各种共享服务,如Gmail,Facebook,Twitter等。大多数服务具有相当长的消息长度,但特别是twitter简短(140个字符)。使用ACTION_SEND发送短消息到twitter和长消息到gmail使用ACTION_SEND

一旦出现Intent.createChooser()对话框,就不会提前知道用户将选择哪个服务,有没有一种方法可以构造一个意图,这将导致twitter的短消息,而是针对其他服务的更长的消息?

+1

也许不是...... – Falmarri 2010-10-31 07:27:58

回答

0

也许你可以尝试在应用程序中使用twitter作为选项分开分享。在某些编辑文本框中从应用程序内部获取文本,并验证其是否少于140个字符,然后发送文本。即使在这种情况下,当您致电ACTION_SEND时,用户将能够看到所有选项,但他们至少会被限制为140个字符。

Intent i=new Intent(android.content.Intent.ACTION_SEND); 
i.setType("text/plain"); 
i.putExtra(Intent.EXTRA_SUBJECT, R.string.share_subject); 
i.putExtra(Intent.EXTRA_TEXT, ...); 
startActivity(Intent.createChooser(i, R.string.share_title)); 

您也可以尝试使用位LY API,可以缩短正在Twitter上发布的URL

+0

谢谢,这是类似于我已经想到了一个解决方案,这是使用不同意图的两个不同按钮(一个用于推特,一个用于其他),并在第二个文本中使用缩短的文本。但Twitter会在第一个显示为发送选项,这并不理想。 – emmby 2010-11-02 14:00:06

+0

虽然选项显示那里用户从该页面选择Twitter客户端的可能性将会非常小,因为他没有选择该选项......如果他有这样做,那将是他的错。因为我们没有一种直接的方法来选择可以在Twitter上发布消息的应用程序,我们没有交出它......可能未来的SDK可以为我们提供这样的选项。有些用户可能会知道:) – DeRagan 2010-11-02 14:05:39

+0

@DeRagan Twitter使用t.co域自动缩短网址。所以你发布的网址不会计算其全部长度 – 2014-11-15 12:20:28