試したこと
まずは公式ドキュメントを参照。
Receiving Simple Data from Other Apps | Android Developers
Intent FilterをAndroidManifest.xml に登録します。
URLを受け取りたかっただけなのでmimeTypeがtextの物のみ指定。
サンプルを同様の記載をしたところ、Chromeの共有メニューにテストアプリのアイコンが無事出てきました。
ただし、これだとActivity名が表示されてしまうので、アプリ名に変えるためIntentFilterにlabelを指定します。
frameworksのこのへんのコードを参考にしました。
Cross Reference: /packages/apps/UnifiedEmail/AndroidManifest.xml
<activity android:name=".YourActivity" android:label="@string/your_app_name_lable" > <intent-filter android:label="@string/your_app_name"> <action android:name="android.intent.action.SEND" /> <category android:name="android.intent.category.DEFAULT" /> <data android:mimeType="text/plain" /> </intent-filter> </activity>
次に上記で指定したActivity側のコード。URLを受け取る側です。
`Intent.EXTRA_TEXT にリンク情報が入っています。
if (TextUtils.equals(getIntent().getAction(), Intent.ACTION_SEND)) { Bundle extras = getIntent().getExtras(); String extraText = extras.getCharSequence(Intent.EXTRA_TEXT).toString(); if (!TextUtils.isEmpty(extraText)) { doSomething(extraText); } }