他のアプリケーションで SHARE BUTTON からの Intent からデータを抽出しようとしています。それが単なるテキストであるか、より複雑なデータであるかは問題ではありません。たとえば、Android 連絡先アプリが使用するキーを知らなくても、連絡先アプリから自分のアプリに共有されたデータを抽出したいと考えています。
インテントを反復するループまたは方法はありますか?for
ループを使用して通過しようとしましたintent.getExtras(n)
が、null 値が返されます。
他のアプリケーションで SHARE BUTTON からの Intent からデータを抽出しようとしています。それが単なるテキストであるか、より複雑なデータであるかは問題ではありません。たとえば、Android 連絡先アプリが使用するキーを知らなくても、連絡先アプリから自分のアプリに共有されたデータを抽出したいと考えています。
インテントを反復するループまたは方法はありますか?for
ループを使用して通過しようとしましたintent.getExtras(n)
が、null 値が返されます。
これを試して:
getIntent().getExtras().get("android.intent.extra.STREAM")
getIntent().getClipData()
私のデバイスでは、このオブジェクトは次のとおりです。
getIntent().getExtras().get("android.intent.extra.STREAM") = {android.net.Uri$HierarchicalUri@830027572808}"content://com.android.contacts/contacts/as_vcard/2574i5f5fc0900f5c945c"
getIntent().getClipData() = {android.content.ClipData@830027557696}"ClipData { text/x-vcard {U:content://com.android.contacts/contacts/as_vcard/2574i5f5fc0900f5c945c} }"
これは、似たようなものを取得した場合の URI であるため、これが連絡先です。この uri からデータを抽出する方法は別の問題です。
Bundle extras = intent.getExtras();
if (extras != null){
Log.d("EXTRAS", extras.toString());
}
I've updated the example so it would be easier to understand
デバッガーを有効にし、命令にブレークポイントを設定して、指定された時間にインテントエクストラに何が含まれるかを確認できます。
または、あなたが言っていることを実行し、NullPointerExceptionが発生するまでループします。