ページ

2014/03/17

[Android]テキストや画像をLINEに送る

とあるサービスが流行ると周りのサービスは
そのサービスにシェアできるようになってほしいという要望が
多方面から寄せられますね。
以前は Twitter/Facebook が最低限シェア先として欲しいとされていましたが、
最近は LINE に送るを実装して欲しいという要望が多くなっています。

ということで対応コード。

public static Intent getShareTextToLineIntent(String text){
    Intent intent = new Intent();
    intent.setAction(Intent.ACTION_VIEW);
    intent.setData(Uri.parse("line://msg/text/" + text));
    return intent;
}

public static Intent getShareImageToLineIntent(String filePath){
    Intent intent = new Intent();
    intent.setAction(Intent.ACTION_VIEW);
    intent.setData(Uri.parse("line://msg/image/" + filePath));
    return intent;
}
LINE をインストールしていなかった場合は動かないので注意。
Intent を送れるかチェックして対応する必要があります。
このコードには1つ問題点があって、
このコードで LINE を起動して投稿した後に
もう一度このコードで LINE を起動すると、その前に投稿した画面が出て正常に投稿フローに乗れません。
起動側の Intent のフラグをうまく設定すればいいのか LINE 側の対応が必要なのかよくわかっていないです。
Intent のフラグの意味がいまいちわかっていないのでコレを設定すればいけそうだとかあったら教えて下さい。

設置方法|LINEで送るボタン
line://msg/<CONTENT TYPE>/<CONTENT KEY>

パラメータ名 パラメータ値 説明
<CONTENT TYPE> text テキスト情報を送るときに指定します。
image 画像を送るときに指定します。

  • ※Androidの場合、イメージはローカルファイルになります。パラメータ設定方法は、下の<CONTENT KEY>の説明を参照ください。
<CONTENT KEY> [任意の値] パーセントエンコーディング(utf-8)したテキスト情報の値を指定します。

原則、ページタイトル、ページURLの指定が可能です。

  • ※Androidから画像を送信する場合、line://msg/image/(localfilepath)の形式で、LINE側から読み取り可能なローカルファイルのイメージのパスを指定してして下さい。
  • ※ページに関係ない情報の指定はガイドラインで禁止されています。