FC2ブログ
    08 «1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.» 10

    ハルシオンシステムの気ままBlog

    株式会社ハルシオンシステムのメンバーが送る、UnityやらJavaやらの技術的話題から、自社開発のアプリの宣伝とかとかのブログです。ほんと気ままにいきたいと思います。更新日は毎週 月 木でっす!

     

    【Java】ツイッター連動について 

    こんにちは。大坂です。

    酒めもりのチラシを作って横浜にある海華月さんにおいてもらいました!
    是非、お店に行って楽しく美味しい料理・お酒を飲みながら確認してみてください!!
    チラシはこんな感じですよ~。
    sakememory.png

    では、今週のプログラムの話題に。作成したアンドロイドアプリでツイッターに連動したい場合についてです。
    方法は以下があります。(ほかにもあれば教えてください!)
    ・Twitter4jを利用する方法
    ・暗黙のIntentを利用する方法
    ・URLを使用する方法(画像が送れない?)
    今回は暗黙のIntentを利用し、ツイート文言と画像を送る方法。
       //Intent.ACTION_SENDを発行
    Intent intent = new Intent(Intent.ACTION_SEND);
    // 画像も送りたいので「image/jpeg」を指定
    intent.setType("image/jpeg");
    // ツイート文言の設定
    intent.putExtra(Intent.EXTRA_TEXT, "お酒おいしい。");
    // 画像の設定(content://でファイルを指定する)
     intent.putExtra(Intent.EXTRA_STREAM,
    Uri.parse("content://media/external/images/media/1"));
    // 呼び出し 10はリクエストID(アプリ内でわかりやすいものを指定すればよい)
    startActivityForResult(intent, 10);

    こんな感じです。が、しかしTwitter以外のアプリを選ばれるとうまくいかないこともありますね。
    FaceBookとかは「Intent.EXTRA_TEXT」がURLようになっているみたいですし。
    Twitter公式アプリのみを対象とするなら、
     intent.setClassName("com.twitter.android", "com.twitter.android.PostActivity");

    をIntentに設定すれば、直接Twitter公式アプリが起動されます。
    Twitter公式アプリがない場合は「ActivityNotFoundException」が発生するので、Catchして処理をするか事前にTwitter公式アプリがインストールをされているか確認しましょう。
    確認方法はこんな感じでしょうか。
      boolean twitterFlg = false;
    // パッケージマネージャを取得
    PackageManager pm = getPackageManager();
    // ランチャーから起動出来るアプリケーションの一覧を取得
    Intent intent = new Intent(Intent.ACTION_MAIN, null);
    intent.addCategory(Intent.CATEGORY_LAUNCHER);
    // 一覧の取得
    List list = pm.queryIntentActivities(intent, 0);
    if (list != null) {
    for (ResolveInfo info : list) {
    // アプリ名をログに出力
    Log.i("アプリ名", info.loadLabel(pm).toString());
    // パッケージ名をログに出力
    Log.i("パッケージ名", info.activityInfo.packageName);
    // パッケージ名に「"com.twitter.android"」が存在するか判定
    if(info.activityInfo.packageName.equals("com.twitter.android")) {
    twitterFlg = true;
    break;
    }
    }
    }

    ここまで書いたことをうまく利用すれば、認証とかをあまり気にせずにTwitter連動ができるのではないでしょうか。
    Twitter4Jの記事も探すと色々あるので自分やアプリに合った方法でツイッター連動してみましょう!

    ではでは、また来週(´・ω・)ノシ

    Category: 開発日記(Java)

    tb 0 : cm 0