开发者

Shortcuts to Facebook and Twitter apps post pages

开发者 https://www.devze.com 2023-04-11 00:22 出处:网络
I\'m implementing share functions on my Android application. I already have intergrated an intent chooser to share a text type message. Now, I\'d like to create two shortcuts : one to access to the us

I'm implementing share functions on my Android application. I already have intergrated an intent chooser to share a text type message. Now, I'd like to create two shortcuts : one to access to the user's Facebook post page, another to access to his twitter post page. (as the chooser do)

I found this helpful topic : launch facebook app from other app and tried to find the right word (fb://word) using the ADB shell command but I can't figure out ("publish", "publishing", "post", "share", "sharing" don't work).

Then I tried to catch the created intent (via the Log) on the intent chooser when I was clicking on Facebook or Twitter. I found :

"Starting: Intent { act=android.intent.action.SEND typ=text/plain flg=0x3000000 cmp=com.twitter.android/.PostActivity (has extras) } from pid 17575" for Facebook, and

"Starting: Intent { act=android.intent.action.SEND typ=text/plai开发者_StackOverflown flg=0x3000000 cmp=com.facebook.katana/.ShareLinkActivity (has extras) } from pid 17575" for Twitter.

I created those intents with the following codes (on the buttons' onClick() methods):

Intent fbIntent = new Intent(Intent.ACTION_SEND);
fbIntent.setType("text/plain"); 
fbIntent.setFlags(0x3000000);   
fbIntent.setComponent(new ComponentName("com.facebook.katana", ".ShareLinkActivity"));
fbIntent.putExtra(Intent.EXTRA_TEXT, getString(R.string.share_text));
startActivity(fbIntent);

I also tried this way:

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

But even if the logs look the same nothing happens.

Any idea?


I think you should use setClassName instead of setComponent.

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

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

Note: Recent Twitter versions are using 'com.twitter.android.composer.ComposerActivity' (instead of 'com.twitter.android.PostActivity')

0

精彩评论

暂无评论...
验证码 换一张
取 消