Android : LINE App Intent

Beberapa waktu lalu saya mendapatkan tugas membuat aplikasi Line Chat Bot pada salah satu mata kuliah dikampus. LINE sendiri mempunyai publik API, tapi harus mendaftarkan terlebih dahulu channel yang akan digunakan (biasanya untuk keperluan aplikasi pihak ketiga) kemudian harus direview dulu oleh tim LINE, syukur-syukur di-approve. Namun pada beberapa kasus, fitur yang kita inginkan tidak se-ribet itu. Misalnya, dari aplikasi yang kita buat ingin share text ataupun link ke user tertentu via Intent ke aplikasi LINE. Perhatikan source berikut untuk share kontent ke aplikasi LINE :

public static final String PACKAGE_NAME = "jp.naver.line.android";
public static final String CLASS_NAME = "jp.naver.line.android.activity.selectchat.SelectChatActivity";
public void sendTextHandler(String sendText) {
    	if(checkLineInstalled()){ // cek package
            Intent intent = new Intent(Intent.ACTION_SEND);
            intent.setClassName(PACKAGE_NAME, CLASS_NAME);
            intent.setType("text/plain");
            intent.putExtra(Intent.EXTRA_TEXT, sendText);
            startActivity(intent);
    	}else{
    		Toast toast = Toast.makeText(this, "LINE tidak terinstall", Toast.LENGTH_SHORT);
    		toast.show();
    	}
    }

Pada fungsi diatas adalah mengirimkan text kepada friendlist di LINE, sayangnya tidak bisa langsung direct. Harus memilih user tertentu terlebih dahulu. Untuk type media, bisa dengan menggunakan uri pada file dalam device, kemudian intent type nya bisa diset menjadi image/jpg misalnya.

Cara lain adalah dengan parsing dari LINE URL. Misalnya saya mempunyai URL yang langsung mengarah ke profile saya. URL nya adalah sebagai berikut : http://line.me/ti/p/@aha0793v. Syaratnya kita harus rubah bagian line.me menjadi line:// sehingga URL lengkapnya menjadi seperti berikut : line://ti/p/@aha0793v. Kemudian test dengan Intent :

 String sendText = "line://ti/p/@aha0793v";
        Intent intent = null;
        if(checkLineInstalled()) {
            String lineString = sendText;
            try {
                intent = Intent.parseUri(lineString, Intent.URI_INTENT_SCHEME);
            } catch (URISyntaxException e) {
                e.printStackTrace();
            }
            startActivity(intent);
        }

Kode diatas jika dijalankan, maka Intent tersebut akan mengarahkan kita pada akun dengan ID tersebut pada Aplikasi LINE. So, pada dasarnya semua URL yang diawali dengan http://line.me/... bisa diparsing dengan URI_INTENT_SCHEME, saya sudah coba beberapa URL/link, misalnya menambahkan sekolah dan lain sebagainya. Selamat mencoba!