intent filter를 통해 설정.

인터넷 브라우저에서 메뉴-페이지 공유 라던가.... 암튼 메뉴의 공유 라는 명령을 실행할 때 내 앱도 받을 수 있게 해주는 방법이다.

받고자 하는 Activity에 설정한다


<intent-filter>

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

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


<data android:mimeType="image/*" />

<data android:mimeType="video/*" />

<data android:mimeType="audio/*" />

<data android:mimeType="text/*" />

<data android:mimeType="application/*" />

<data android:mimeType="plain/*" />

</intent-filter>

<intent-filter>

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

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


<data android:mimeType="image/*" />

<data android:mimeType="video/*" />

<data android:mimeType="audio/*" />

<data android:mimeType="text/*" />

<data android:mimeType="application/*" />

<data android:mimeType="plain/*" />

</intent-filter>


android:mimeType이 실제로 내 어플에서 받을 데이터의 유형이다.

예를들어 브라우저에서 페이지 공유를 하면 웹URL을 text형태로 받을 수 있다.


===


반대로 내 앱에서 공유하기 메뉴를 만들어 다른 어플에 데이터를 전송하고자 하려면 startActivity를 사용한다.


Intent i = new Intent(Intent.ACTION_SEND);

i.setType("text/plain");

i.putExtra(android.content.Intent.EXTRA_TEXT, "Share Data");

startActivity(Intent.createChooser(i,"Share using"));


Intent:setType에 설정되는 값에 따라서 받을 수 있는 앱의 목록이 달라진다.

text/plain은 SNS앱에 공유하기가 가능한 타입이다.

+ Recent posts