[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¶m2=b¶m3=c");
Intent i = new Intent();
i.setAction(Intent.ACTION_VIEW);
i.setClassName("받는쪽패키지", "받는쪽패키지.ReceiveActivity");
i.setData(uri);
startActivity(i);