Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/225.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Facebook和Twitter应用程序发布页面的快捷方式_Android_Facebook_Twitter - Fatal编程技术网

Android Facebook和Twitter应用程序发布页面的快捷方式

Android Facebook和Twitter应用程序发布页面的快捷方式,android,facebook,twitter,Android,Facebook,Twitter,我正在我的Android应用程序上实现共享功能。我已经集成了一个意图选择器来共享文本类型的消息。现在,我想创建两个快捷方式:一个是访问用户的Facebook帖子页面,另一个是访问他的twitter帖子页面。 (与选择器一样) 我找到了这个有用的主题:并尝试使用ADB shell命令找到正确的单词(fb://word),但我无法理解(“发布”、“发布”、“发布”、“共享”、“共享”不起作用) 然后,当我在Facebook或Twitter上点击时,我尝试在意图选择器上捕捉创建的意图(通过日志)。我发

我正在我的Android应用程序上实现共享功能。我已经集成了一个意图选择器来共享文本类型的消息。现在,我想创建两个快捷方式:一个是访问用户的Facebook帖子页面,另一个是访问他的twitter帖子页面。 (与选择器一样)

我找到了这个有用的主题:并尝试使用ADB shell命令找到正确的单词(fb://word),但我无法理解(“发布”、“发布”、“发布”、“共享”、“共享”不起作用)

然后,当我在Facebook或Twitter上点击时,我尝试在意图选择器上捕捉创建的意图(通过日志)。我发现:

Facebook的“起始:pid 17575中的Intent{act=android.Intent.action.SEND typ=text/plain flg=0x3000000 cmp=com.twitter.android/.PostActivity(具有额外功能)}”,以及

Twitter的“从pid 17575开始:Intent{act=android.Intent.action.SEND typ=text/plain flg=0x3000000 cmp=com.facebook.katana/.ShareLinkActivity(有额外功能)}”

我使用以下代码创建了这些意图(在按钮“
onClick()
方法上):

我也试过这样做:

Intent twitterIntent = new Intent(Intent.ACTION_VIEW);
twitterIntent.setAction("android.intent.action.SEND");
twitterIntent.setFlags(0x3000000);                  
twitterIntent.setType("text/plain");    
twitterIntent.setComponent(new ComponentName("com.twitter.android", ".PostActivity"));
twitterIntent.putExtra(Intent.EXTRA_TEXT, getString(R.string.share_text));
startActivity(twitterIntent);
但即使日志看起来一样,也不会发生任何事情


有什么想法吗?

我想你应该用setClassName而不是setComponent

intent.setClassName("com.facebook.katana", "com.facebook.katana.ShareLinkActivity");

intent.setClassName("com.twitter.android", "com.twitter.android.composer.ComposerActivity");

注意:最近的推特版本正在使用“com.Twitter.android.composer.ComposerActivity”(而不是“com.Twitter.android.PostActivity”)

我知道有一种简单的方法可以做到这一点!非常感谢@Jompis,你的帖子救了我!!有人知道只打开twitter应用程序的类名吗?intent.setClassName(“com.twitter.android”、“com.twitter.android”);显然这不起作用。更新了答案,现在是:com.twitter.android.composer.composerActivity什么是“0x3000000”?
intent.setClassName("com.facebook.katana", "com.facebook.katana.ShareLinkActivity");

intent.setClassName("com.twitter.android", "com.twitter.android.composer.ComposerActivity");