Androidで簡単にシェア(共有)機能実装。ShareCompat の覚え書き

Androidでシェア機能を作ろうとした場合、、、

  • Intentで全部自分で実装する
  • ShareCompat を使って実装
  • 外部の専用ライブラリを使う

主にこの3つの方法があります。

手軽で簡単なのが ShareCompat を使うこと

使い方も簡単だったので、
ここでは ShareCompat によるシェア機能の実装手順 まとめました。

アプリの宣伝・インストール数底上げにも役立ちそうです。

まず ShareCompat についてと、使う前の下準備

この ShareCompat は以下のような機能

▼ Android developers から引用

Extra helper functionality for sharing data between activities. ShareCompat provides functionality to extend the ACTION_SEND/ ACTION_SEND_MULTIPLE protocol and support retrieving more info about the activity that invoked a social sharing action.

引用元 : ShareCompat | Android デベロッパー

▼ この説明の超適当な意訳

アクティビティ間でデータを共有するためのヘルパー機能。ShareCompat は従来の ACTION_SEND/ ACTION_SEND_MULTIPLE を拡張し、SNSでのシェアアクションを呼び出したアクティビティに関する詳細情報の取得をサポートします。

もちろん共有アクティビティは "これなし" でも呼び出し可能

でも楽したいなら コッチを使う方がいいですね。

あとこれを使うにあたり、特別な準備もありません。

もちろん build.gradle とかの編集も不要です。(多分)

基本的なSNSシェア機能の実装手順&コード例

では早速これを使って、シェア機能を付けることに。

開発アプリでは次の用途で使いたかったです。

  • 自分のアプリを宣伝するため
  • 外部のSNSアプリを起動するため

少しでもアプリインストール数は伸ばしたいですよね。

そのために使ってみようって感じです。

とあるアプリに実装してみた手順は以下の通り

 

まず共有アプリ一覧を呼び出すメソッド定義してみました。

▼ こういうの

大事なポイントは次の2つ

  • 件名の設定
    上コードの setSubject(subject)  の部分。メールなら件名に表示されるが、Twitterとかだとあんまり意味ないらしい・・・
  • 本文の設定
    上コードの setText(bodyText)  の部分。メールでいう本文、Twitterなら日本語のみで140文字まで可能( 関連記事 => ツイート文字数とバイト数の関係

普通にシェアしてもらうだけなら、これでも十分です。

あとはメニュー項目なりがタッチされたときに起動させればOKです。

 

どういう動作とか見た目かについてですが・・・

ShareCompat が起動すると、こういうメニューが表示されます。

▼ Android7.0での見た目

Android7.0でShareCompatのシェア機能を呼び出してみた

▼ その中から Twitter をタッチしてみた

ShareCompatからTwitterを起動したときの様子。ツイートしたい内容が自動でセットされる

本文に設定したものが最初からツイート欄にセットされてます。

これを Intent だけでやろうとすると大変なんですよね・・・

こういう便利なライブラリは使わない手はありません。

シェア後の結果を startActivityForResult で受け取る

もしSNSシェア(共有)するだけではなく、、、

  • シェア後に何かトースト表示したい
  • 本当にシェアされたか知りたい

こういう場合は onActivityResult  で受け取ることも可能です。

そのやり方では以下の通り

 

1.先ほどのシェアコードを少しだけ書き変え

2.onActivityResult をオーバーライド

こうすればSNSシェア後に何かすることが可能

このテクニック(?)はAndroid開発では意外とよく使います。

ここまでのまとめ

シェア機能だったら Intent だけでも実装できるものの・・・

やっぱり ShareCompat の方が労力かからないし楽ですね。

あと変なバグ・エラーが入るリスクも最小限にできます。

以上、ShareCompat でシェア機能をAndroidアプリに付ける方法でした。

Commentsこの記事についたコメント

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください