gpt4 book ai didi

android - 使用来自 Android 应用程序的 Intent 发推文

转载 作者:太空狗 更新时间:2023-10-29 12:50:12 24 4
gpt4 key购买 nike

我正在使用以下代码从另一个应用程序发送一些内容:

try{
Intent intent = new Intent(Intent.ACTION_SEND);
intent.putExtra(Intent.EXTRA_TEXT, "It's a Tweet!" + "#MyApp");
intent.setType("text/plain");
final PackageManager pm = getPackageManager();
final List<?> activityList = pm.queryIntentActivities(intent, 0);
int len = activityList.size();
for (int i = 0; i < len; i++) {
final ResolveInfo app = (ResolveInfo) activityList.get(i);
if ("com.twitter.android.PostActivity".equals(app.activityInfo.name)) {
final ActivityInfo activity=app.activityInfo;
final ComponentName x=new ComponentName(activity.applicationInfo.packageName, activity.name);
intent=new Intent(Intent.ACTION_SEND);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
intent.setComponent(x);
intent.putExtra(Intent.EXTRA_TEXT, "blah blah" );
startActivity(intent);
break;
}
}
} catch(final ActivityNotFoundException e) {
Log.i("Twitter intent", "no twitter native", e );
}

如果手机上安装了 Twitter 应用程序但未打开,则上述代码可以完美运行。但是,如果我在使用上述 Activity 之前使用了推特,那么我只会被转移到我上次离开推特的同一点,并且我想发布的文本不会发布。我应该怎么做才能纠正这个问题?

另外,如果我的手机上没有安装 twitter,那么什么也不会发生。按下启动上述 Intent 的按钮时,什么也没有发生,但我实际上不应该收到消息 - 没有推特 native 。应该怎么做才能收到消息??

最佳答案

我认为您应该使用 setClassName 而不是 setComponent。

  intent.setClassName("com.twitter.android", "com.twitter.android.PostActivity");

但作为有用的旁注,您可以通过多种方式与 Twitter 集成:

1) 使用他们的 API(可能使用像 twitter4j 这样的库),或者

2) 找到一种与 Twitter 应用程序集成的方法,就像您现在正在做的那样。这不是一个好主意,因为许多人使用其他应用程序,例如 Plume、TweetDeck 等,如果他们没有安装 Twitter,您的应用程序将无法运行。

3) 你可以打开http://twitter.com/?status=使用一个简单的 Intent 。这可以像这样完成:

  Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse("http://twitter.com/?status=" + Uri.encode(message)));
startActivity(i);

您也可以将 2 和 3 结合起来。您可以尝试一些已知的 twitter 应用程序,如果它们不存在,请调用浏览器。

另请注意,如果应用处理正确的 Intent ,方法 3 可能会实际启动应用而不是浏览器(或至少让用户在两者之间进行选择)。

在我看来,方法 1 是最好的,因为它只依赖于您的应用(好吧,库除外)并且您不必与用户可能拥有或可能没有的第三方应用集成。

关于android - 使用来自 Android 应用程序的 Intent 发推文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12911054/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com