別のアプリでテキストを選んで共有とか、Chromeで共有ってやったときにアプリリストに現れるようにして受け取れるようにする。
AndroidManifest.xmlの受け取るActivityのintent-filterに次のように追加する。
<action android:name="android.intent.action.SEND"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:mimeType="text/*"/>
これで一覧に表示されるようになる。
共有すると受け取るActivityが起動しonCreateが呼ばれるのでBundleを取得してテキストを取得する。こんな感じ。
Intent intent = getIntent();
String action = intent.getAction();
if(action.equals(Intent.ACTION_SEND)) {
Bundle extras = intent.getExtras();
if(extras != null) {
CharSequence text = extras.getCharSequence(Intent.EXTRA_TEXT);
if(text != null) {
editText.setText(text);
}
}
}
画像を受け取る場合はmimTypeを次のようにする。
<data android:mimeType="image/png"/>
<data android:mimeType="image/jpg"/>
<data android:mimeType="image/jpeg"/>
onCreateはこんな感じに。
Intent intent = getIntent();
String action = intent.getAction();
if(action.equals(Intent.ACTION_SEND)) {
Bundle extras = intent.getExtras();
if(extras != null) {
Object uri = extras.get("android.intent.extra.STREAM");
if(uri instanceof Uri) {
imageView.setImageURI((Uri)uri);
}
}
}
コメント