[Android] Custom Scheme 생성에 대한 메모

어플간 호출시 파라미터를 넘겨야 하는 상황

인텐트에 데이터를 넣지 않고, URI를 이용하여 데이터를 넘기는 방식에 대한 메모


받는쪽 

        <activity android:name=".ReceiveActivity" android:label="@string/app_name" >

           <intent-filter>

                <action android:name="android.intent.action.VIEW" />

                <category android:name="android.intent.category.DEFAULT" />

                <category android:name="android.intent.category.BROWSABLE" />

                <data android:scheme="test" android:host="com.test.demo" />

            </intent-filter>

        </activity>  


        Intent intent = getIntent(); 

        if(Intent.ACTION_VIEW.equals(intent.getAction())) { 

            Uri uri = intent.getData(); 

            String param1 = uri.getQueryParameter("param1"); 

            String param2 = uri.getQueryParameter("param2");

            String param3 = uri.getQueryParameter("param3");

            

            mResult.setText("param1 : " + param1 + " / param2 : " + param2 + " / param3 : " + param3);

         }


보내는쪽

Uri uri = Uri.parse("test://com.test.demo?param1=a&param2=b&param3=c");

      Intent i = new Intent();

      i.setAction(Intent.ACTION_VIEW);

      i.setClassName("받는쪽패키지", "받는쪽패키지.ReceiveActivity");

i.setData(uri);

startActivity(i);


참고자료 : http://journae.springnote.com/pages/6730933