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

【Android】YouTube 「共有」からデータ保存まで

Android

 

f:id:stanleyblenz:20161108231557p:plain

 

 

f:id:stanleyblenz:20161108231617p:plain

 

 

「共有」に自分のアプリを表示して、

YouTubeのタイトルやアドレスを取得する方法をご紹介します。

(「共有」へのアプリの表示の仕方は過去記事で確認できます)

 

stanleyblenz.hatenablog.com

 

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

AndroidManifest.xml

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

 

SubActivity.java

public class SubActivity extends Activity {

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_sub);

    Intent intent = getIntent();
    String action = intent.getAction();
    if (Intent.ACTION_SEND.equals(action)) {
      Bundle extras = intent.getExtras();★ここにYouTubeのタイトルなどが保持
      if (extras != null) {
        this.register(intent);//別メソッドで処理します
      }
    }

    private void register(Intent intent) {

      Bundle extras = intent.getExtras();
      String title = "";
      if (extras != null) {
        CharSequence subject =

          extras.getCharSequence(Intent.EXTRA_SUBJECT);

        CharSequence text = extras.getCharSequence(Intent.EXTRA_TEXT);
      }
    }

  }

}

※subject・・・タイトルが入っています。

※text・・・・  ビデオIDが入っています。

 

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

Bundle extras = intent.getExtras();

extrasの中身がもっとみたい場合は以下のようにしてキーと値を取得できます。

for (String key : extras.keySet()) {
  Object value = extras.get(key);
  Log.e("keySet ", String.format("%s %s (%s)",

           key,

           value.toString(),

           value.getClass().getName()));

}

 

以上です。