Ярлыки на страницах публикации приложений Facebook и Twitter - PullRequest
6 голосов
/ 06 октября 2011

Я реализую функции общего доступа в моем приложении Android.Я уже включил средство выбора намерений, чтобы поделиться сообщением типа текста.Теперь я хотел бы создать два ярлыка: один для доступа к странице поста пользователя в Facebook, другой для доступа к странице поста в Твиттере.(как делает выбор)

Я нашел эту полезную тему: запустите приложение facebook из другого приложения и попытался найти правильное слово (fb: // word), используя команду оболочки ADB, ноЯ не могу понять («публикация», «публикация», «публикация», «публикация», «обмен» не работают).

Затем я попытался поймать созданное намерение (через Журнал) о намерении выбора, когда я нажимал на Facebook или Twitter.Я нашел:

"Начало: Intent {act = android.intent.action.SEND typ = text / plain flg = 0x3000000 cmp = com.twitter.android / .PostActivity (имеет дополнения)} изpid 17575 "для Facebook и

" Начало: Intent {act = android.intent.action.SEND typ = text / plain flg = 0x3000000 cmp = com.facebook.katana / .ShareLinkActivity (имеет дополнительные функции)}из pid 17575 "для Twitter.

Я создал эти намерения с помощью следующих кодов (для методов onClick() кнопок):

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

Я также попробовал этот способ:

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

Но даже если журналы выглядят одинаково, ничего не происходит.

Есть идеи?

1 Ответ

9 голосов
/ 09 октября 2011

Я думаю, что вы должны использовать setClassName вместо setComponent.

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

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

Примечание : последние версии Twitter используют ' com.twitter.android.composer.ComposerActivity '(вместо' com.twitter.android.PostActivity ')

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...