暗黙的インテントについて

293 views
Skip to first unread message

rion.k.tanaka

unread,
Apr 19, 2013, 1:41:45 AM4/19/13
to android-g...@googlegroups.com
お世話になります。

独自のデータを作成するアプリを作成しています。
作成したデータを他人と共有したい場合、データをファイル化してなんらかの手
段で受け渡して、受け取った側はそのデータファイルをクリックすることによっ
てアプリを起動させデータを読み込むという形にしたいです。


ネットから調べた情報でAndroidManifest.xmlは以下のように記述しました。
他のファイルと区別するためデータファイルの拡張子を.abcとしてあります。

<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="file" android:host="*" android:pathPattern=".*\\.abc"/>
</intent-filter>

これで、アプリでデータファイルを作成し、アプリ終了後にコンテンツマネージャー
などでそのファイルをクリックするとアプリが起動するようになりました。
しかし、作成したデータファイルをメールに添付し転送した場合、そのファイル
をクリックしても「対応するアプリがありません」となってしまいます。これは
アプリと同じ本体で試してみても起こります。

これは何が原因なのでしょうか。
当方、独学でAndroidを学んでおり、Androidのファイルシステムがよくわかって
おりません。
ご存じの方がいらっしゃいましたらご教授ください。

Shinji Otsubo

unread,
Apr 19, 2013, 9:07:11 AM4/19/13
to android-g...@googlegroups.com
初めまして、大坪と申します。

端末側や、送信元のシステムで何か特別なmime 設定がされていないのなら、

*.abcをメールに添付したときは mime-type が "application/octet-stream"になるはずですので、それを指定してやるだけで大丈夫だと思います。

私の手元の端末(GalaxyNexus 4.2.2)では、以下でshare dialog に出て来てくれています。


<data android:mimeType="application/octet-stream"

 android:host="*" android:pathPattern=".*\\.abc" />


よろしくお願いします。

2013年4月19日 14:41 rion.k.tanaka <rion.k...@gmail.com>:

--
このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
このグループから退会し、メールの受信を停止するには、android-group-j...@googlegroups.com にメールを送信します。
このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
http://groups.google.com/group/android-group-japan?hl=ja からこのグループにアクセスしてください。
その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。



rion.k.tanaka

unread,
Apr 22, 2013, 12:47:53 AM4/22/13
to android-g...@googlegroups.com
大坪さん、ご返信有り難うございます。返事が遅くなりまして済みません。
 
以下の指定を試してみました。確かにメールに添付されている状態からの起動は出来るようになりましたが、一度保存してからではやはり起動できませんでした。
拡張子だけで判別するWindowsファイルと違ってAndroid(Linux系?)は奥が深いんですね。
何かこの辺について参考になる資料なりご存じでしたらご教授ください。
--
rion.k.tanaka <rion.k...@gmail.com>

sos_jp

unread,
Apr 22, 2013, 2:40:02 AM4/22/13
to android-g...@googlegroups.com

大坪です。


ダウンロードしたファイルもということでしたら、

android:mimeType="*/*" に変えてやればいけるんじゃないでしょうか。

端末内の全ての *.abcに適用されちゃうのでユーザーさんに注意して

もらう必要はありますけど。


<data android:mimeType="*/*"

 android:host="*" android:pathPattern=".*\\.abc" />


よろしくお願いします。

# 個人的には、メールに添付する際も、可能ならcontent-typeを独自の

# application/x-myabcfileとかにして送っちゃうほうが好みだったりします。



2013年4月22日 13:47 rion.k.tanaka <rion.k...@gmail.com>:

rion.k.tanaka

unread,
Apr 22, 2013, 3:32:01 AM4/22/13
to android-g...@googlegroups.com
android:mimeType="*/*" を試してみたところ、最初の状態と同じ、同じ拡張子
なのに起動できるファイルと出来ないファイルが存在するという状況になりまし
た。
ちなみにメール添付からでは起動されなくなりました。

ただ、「ファイルマネージャー」というアプリではどのファイルでもちゃんと
share dialogに表示され起動できるようになっています。
インテントを送る側のアプリによって挙動が変わるようですね。(当たり前っちゃ
当たり前ですが)

しかしもって、拡張子が同じなのに動作に違いが出るというのが謎です。

引き続き調べるつもりですが、まずはご教授いただいたcontent-typeを独自タイ
プに設定する方法を試してみたいと思います。

ありがとうございました。
> >>> このグループから退会し、メールの受信を停止するには、<mailto:android-group-japan%2Bunsu...@googlegroups.com>android-group-j...@googlegroups.com にメールを送信します。
> >>> このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
> >>> http://groups.google.com/group/android-group-japan?hl=ja からこのグループにアクセスしてください。
> >>> その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。
> >>>
> >>>
>
>
>
>
>
>
> --
> このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> このグループから退会し、メールの受信を停止するには、<mailto:android-group-japan%2Bunsu...@googlegroups.com>android-group-j...@googlegroups.com にメールを送信します。
> このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
> http://groups.google.com/group/android-group-japan?hl=ja からこのグループにアクセスしてください。
> その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。
>
>
>
>
>
> --
> rion.k.tanaka <rion.k...@gmail.com>
>
>
> --
> このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> このグループから退会し、メールの受信を停止するには、<mailto:android-group-japan%2Bunsu...@googlegroups.com>android-group-j...@googlegroups.com にメールを送信します。
Reply all
Reply to author
Forward
0 new messages