Android 简明教程

Android - Twitter Integration

Android 允许您的应用程序连接到 Twitter 并分享数据或任何种类的 Twitter 更新。本章介绍将 Twitter 集成到您的应用程序。

可以通过两种方式集成 Twitter 并在您的应用程序上分享内容。这些方式列在下面 −

  1. Twitter SDK (Twitter4J)

  2. Intent Share

Integrating Twitter SDK

这是第一种与 Twitter 连接的方式。您必须注册您的应用程序,然后接收一些应用程序 ID,然后您必须下载 Twitter SDK 并将它添加到您的项目。步骤如下 −

Registering your application

dev.twitter.com/apps/new 创建一个新的 Twitter 应用程序,并填写所有信息。如下所示 −

twitter 1

现在在设置标签页下,将访问权限更改为读写并访问消息,并保存设置。如下所示 −

twitter 2

如果一切正常,您将收到一个带有密码的消费者 ID。只需复制应用程序 ID,并将它保存在某个地方。在下图中显示 −

twitter 3

Downloading SDK and integrating it

下载 Twitter SDK here 。将 twitter4J jar 复制到您的项目 libs 文件夹中。

Posting tweets on twitter application

一旦所有内容都已完成,您可以运行可以在 here 中找到的 twitter 4J 示例。

要使用 Twitter,您需要实例化 Twitter 类的对象。可以通过调用静态方法 getsingleton() 来实现。其语法如下。

// The factory instance is re-usable and thread safe.
Twitter twitter = TwitterFactory.getSingleton();

要更新状态,您可以调用 updateStatus() 方法。其语法如下 −

Status status = twitter.updateStatus(latestStatus);
System.out.println("Successfully updated the status to [" + status.getText() + "].");

Intent share

意图共享用于在应用程序之间共享数据。使用此策略,我们不会处理 SDK 事务,而是让 Twitter 应用程序处理。我们只会调用 Twitter 应用程序并将数据传递以供分享。通过此方式,我们可以通过 Twitter 分享一些内容。

Android 提供意图库,以在活动和应用程序之间共享数据。要将此作为共享意图使用,我们必须指定共享意图的类型为 ACTION_SEND 。其语法如下 −

Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);

接下来您需要做的是定义要传递的数据的类型,然后传递数据。其语法如下 −

shareIntent.setType("text/plain");
shareIntent.putExtra(Intent.EXTRA_TEXT, "Hello, from tutorialspoint");
startActivity(Intent.createChooser(shareIntent, "Share your thoughts"));

除了这些方法,还有其他允许意图处理的方法。它们列在下面 −

Sr.No

Method & description

1

addCategory(String category) 此方法向意图添加一个新的类别。

2

createChooser(Intent target, CharSequence title) 用于创建 ACTION_CHOOSER 意图的便捷功能

3

getAction() 此方法检回要执行的常规操作,例如 ACTION_VIEW

4

getCategories() 此方法返回意图及当前缩放事件中的所有类别的集合

5

putExtra(String name, int value) 此方法添加扩展数据到意图中。

6

toString() 此方法返回包含对该对象简明易懂的人类可读描述的字符串

Example

以下是一个使用 IntentShare 在 twitter 上分享数据的示例。它创建一个基本的应用程序,允许你在 twitter 上分享一些文本。

要使用此示例,你可以在实际设备或模拟器上运行此示例。

Steps

Description

1

你将使用 Android Studio 在包 com.example.sairamkrishna.myapplication 下创建 Android 应用程序。

2

修改 src/MainActivity.java 文件以添加必要的代码。

3

修改 res/layout/activity_main 以添加各自的 XML 组件

4

运行应用程序并选择正在运行的 Android 设备,并将应用程序安装在其上并验证结果

下面是已修改的 MainActivity.java 的内容。

package com.example.sairamkrishna.myapplication;

import android.content.Intent;
import android.net.Uri;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.View;

import android.widget.Button;
import android.widget.ImageView;
import java.io.FileNotFoundException;
import java.io.InputStream;

public class MainActivity extends ActionBarActivity {
   private ImageView img;
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);

      img=(ImageView)findViewById(R.id.imageView);
      Button b1=(Button)findViewById(R.id.button);

      b1.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View v) {
            Intent sharingIntent = new Intent(Intent.ACTION_SEND);
            Uri screenshotUri = Uri.parse("android.resource://comexample.sairamkrishna.myapplication/*");

            try {
               InputStream stream = getContentResolver().openInputStream(screenshotUri);
            } catch (FileNotFoundException e) {
               // TODO Auto-generated catch block
               e.printStackTrace();
            }
               sharingIntent.setType("image/jpeg");
               sharingIntent.putExtra(Intent.EXTRA_STREAM, screenshotUri);
               startActivity(Intent.createChooser(sharingIntent, "Share image using"));
         }
      });
   }
}

以下是修改后的 xml res/layout/activity_main.xml 内容。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:paddingLeft="@dimen/activity_horizontal_margin"
   android:paddingRight="@dimen/activity_horizontal_margin"
   android:paddingTop="@dimen/activity_vertical_margin"
   android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">

   <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/textView"
      android:layout_alignParentTop="true"
      android:layout_centerHorizontal="true"
      android:textSize="30dp"
      android:text="Twitter share " />

   <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Tutorials Point"
      android:id="@+id/textView2"
      android:layout_below="@+id/textView"
      android:layout_centerHorizontal="true"
      android:textSize="35dp"
      android:textColor="#ff16ff01" />

   <ImageView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/imageView"
      android:layout_below="@+id/textView2"
      android:layout_centerHorizontal="true"
      android:src="@drawable/abc"/>

   <Button
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Share"
      android:id="@+id/button"
      android:layout_marginTop="61dp"
      android:layout_below="@+id/imageView"
      android:layout_centerHorizontal="true" />

</RelativeLayout>

下面是 AndroidManifest.xml 文件的内容。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.example.sairamkrishna.myapplication" >

   <application
      android:allowBackup="true"
      android:icon="@mipmap/ic_launcher"
      android:label="@string/app_name"
      android:theme="@style/AppTheme" >

      <activity
         android:name=".MainActivity"
         android:label="@string/app_name" >

         <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
         </intent-filter>

      </activity>

   </application>
</manifest>

让我们尝试运行你的应用程序。我假设你已将你的安卓移动设备与电脑连接。若要从 Android 工作室运行该应用程序,请打开你的一个项目的活动文件,然后点击工具栏中的“运行”图标。在启动应用程序之前,Android 工作室会显示以下窗口,以选择要在其中运行安卓应用程序的选项。

choose device

选择您的移动设备作为选项,然后检查您的移动设备,它将显示您的默认屏幕 −

twitter1

现在,轻触该按钮,你便会看到一个分享提供程序列表。

twitter2

现在,从该列表中选择 twitter,然后写一条消息。如下面的图片所示:

twitter3

现在,选择 tweet 按钮,然后在你的 twitter 页面上发布。如下所示:

twitter4