LINEにメッセージを送る時に「ご利用のバージョンでは対応していないか不正なURLです。」って言われたので直しました – Android

[PR]

このエラーが出る理由は色々あるらしいけど、自分の場合は改行コードが入っているのに、URLエンコードしていないのが問題でした。

今回のケースに限らず、URLなんだからちゃんとエンコードしようZE!って怒られそうですが。

いざコード!

String msg = 'や\nき\nい\nも'; // 改行付きテキスト

String s;
try {
    // エンコードにトライ!
    s = URLEncoder.encode(msg, "utf-8");
} catch (UnsupportedEncodingException e) {
    // まさかのエンコード失敗!
    return;
}

Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setData(Uri.parse("line://msg/text/" + s));
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
try {
    // いざLINE
    dialog.getContext().startActivity(intent);
} catch (Exception e) {
    // LINEがないとか?
}