読者です 読者をやめる 読者になる 読者になる

【Android】Intent(共有)

 

「共有」にアプリを表示する方法です。

 

f:id:stanleyblenz:20161024202310p:plain

 

 

---------------------------------------------------------------------------------------------------

AndroidManifest.xml

<activity
    android:name=".SubActivity"
    android:theme="@android:style/Theme.Translucent">
    <intent-filter>
        <action android:name="android.intent.action.SEND"/>
        <category android:name="android.intent.category.DEFAULT"/>
        <data android:mimeType="text/plain"/>
    </intent-filter>
</activity>

 

※これで「共有」に表示されるようになります。

※text/plain  は「共有」を表示させる対象のものを指定

@android:style/Theme.Translucent でSubActivityは非表示にしています

 

---------------------------------------------------------------------------------------------------

SubActivity.java

@Override
protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  Intent intent = getIntent();
  String action = intent.getAction();
  if (Intent.ACTION_SEND.equals(action)) {
    Bundle extras = intent.getExtras();
    if (extras != null) {
      CharSequence sub = extras.getCharSequence(Intent.EXTRA_SUBJECT);
      CharSequence ext = extras.getCharSequence(Intent.EXTRA_TEXT);
    }
  }
}

Intent.EXTRA_SUBJECT タイトルが入っています

Intent.EXTRA_TEXT   URLが入っています

 

あとは、取り出した内容をDBへ保存などお使いの用途によって扱ってください。

DBへ保存などの場合、Activityは非表示にし、画像でMSGで「保存中」などを

表示したりでしょうか。

 

---------------------------------------------------------------------------------------------------

おまけ

▼アプリから「共有」を呼び出す場合
Intent intent = new Intent();
intent.setAction(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_SUBJECT, title);
intent.putExtra(Intent.EXTRA_TEXT, link);
startActivity(intent); 「今回のみ」と「常時」が表示
startActivity(Intent.createChooser(intent, null)); 「今回のみ」(常時が表示されない)