寒川アクアブログ

美容師しながらアプリ開発していて水草が趣味の私のブログです

「友達に紹介する」機能を実装する

個人でアプリを開発している場合、
なかなかユーザー数が増えないのが悩みのタネです。

インパクトのあるゲームなら、ツイッターによる拡散やユーチューバーが紹介したりすると、
爆発的にダウンロードが増えたりもしますが、

堅実なツール系のアプリだと、そのような奇跡はなかなか起こりません(笑)

せめて、気に入ってくれたらお友達に紹介してくれたりすると、
多少はダウンロードしていただけるのでは、と思い、
「友達に紹介する」ボタンを実装してみました。

他のアプリに、文字列を渡すためのコード
Intent intent = new Intent();
intent.setAction(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_TEXT, "キャッチ文" + 
    "\n https://play.google.com/store/apps/〇〇〇〇");
startActivity(intent);

Intent.ACTION_SENDを指定すると、他のアプリに文字列を渡します。

setType("text/plain")では、文字列のデータを指定しています。
画像も渡すことができるので、おしゃれなUIだったら使いたいところです。

putExtra()の第2引数で、要となるテキストを指定します。
例では、キャッチ文と、改行のあとにグーグルプレイのアドレスを載せています。

(改行は、文字列内の改行したいところに \n を挿入します)

最後にstartActivity(intent)で、あとはよろしく~といった具合に丸投げして完了です!


Intent.ACTION_SENDにより、
例えばメールアプリが選択されたときは、本文に上記の、

キャッチ文
https://play.google.com/store/apps/〇〇〇〇


が入力された状態で、件名・宛先は未入力の状態でユーザーに向けて開かれます。

試しに自分宛にメール送信してみたところ、アドレスの所はリンクテキストに自動的に変わるので、
要件はクリアできているかと思います。

グーグルプレイのアプリ詳細ページに移動するコードです。

合わせて実装したい、「ご意見、ご感想」などに適したインテントです。
プレイストアのアプリ紹介ページへジャンプします。

Uri uri = Uri.parse("market://details?id=パッケージ名");
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
これらを実装した例です。

f:id:kentaro198477:20160715210940j:plain

この実装例では、PreferenceActivityに、
PreferenceScreenにタイトルだけを表示して、上記のインテントを発行するボタンとして利用しています。
これの実装方法は、前エントリーでご紹介しています。
よければご参考にしてください。
kojiko-android.hatenablog.com


今回参考にさせていただいたサイト様です。
techbooster.jpn.org