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앱에 공유하기가 가능한 타입이다.