Galaxy Tabでのブラウザからアプリ起動の問題について

327 views
Skip to first unread message

yamachang1521

unread,
Feb 16, 2011, 1:40:03 AM2/16/11
to 日本Androidの会
山下と申します。お世話になっております。
以下の問題に関して解決方法をご存知の方はご教示ください。

------------------------------------------------------------------------------------------------------------------------
現在、Android端末を用いた認証機能の試作を行っております。
この中で、端末にインストールしたAndroidアプリをブラウザから起動するに当たり、
Galaxy SとGalaxy Tabの挙動の違いが現れました。

■試行内容
 Androidアプリ側のManifest.xmlにおいて
 <data android:scheme="testApp" />
 と記載し、
 ブラウザ側で<A href="testApp://">アプリ起動</A>とした
 リンクを押下し、Androidアプリを起動する。

■動作
 Galaxy Sではアプリが起動するが、
 Galaxy Tabではブラウザがエラーを返し起動することができない。
 # Androidのログには
 # 「E/Tab onReceivedError -10 testApp:// そのプロトコルはサポートされていません」
 # と出力されている

 ●http://innovator.samsungmobile.com/galaxyTab.do
  にて提供されているアドオンでは問題なく動作
 ●複数台のGalaxy Tabで同じ動作となる(初期不良ではない)
 ●ブラウザを介さずにランチャからの直接起動は可能


Galaxy S・Galaxy Tabアドオンを含め、他メーカーのAndroid端末でも
問題なく動作しており、Galaxy Tabに依存した現象と認識しておりますが、
なぜGalaxy Tabだけが動作しないのか判断しかねております。
------------------------------------------------------------------------------------------------------------------------

以上です。宜しくお願いいたします。

crazycircuit7

unread,
Feb 16, 2011, 4:08:30 AM2/16/11
to 日本Androidの会
あまり役に立たないかもしれませんが、切り分けできそうな事を試すしか思いつかないです。
ブラウザを変えてみる。(Opera、dolphinなど)
schemeの名前を変えてみる。(名前が重複している?)

yamachang1521

unread,
Feb 16, 2011, 7:25:12 PM2/16/11
to 日本Androidの会
素早いご対応ありがとうございます。
ご指摘通りブラウザを変えてみましたが、いずれもエラーとして落ちてしまいました。
またAndroidManifest.xmlも確認してみましたが、
scheme情報の重複はないようです。
やはり端末依存の問題と捉えるべきなのでしょうか?
dataタグの指定をより詳細化させる(android:host=/android:pathPrefix=)
と挙動が変わるのかも今検証中ですが、望みは薄そうです。

yamachang1521

unread,
Mar 2, 2011, 11:20:23 PM3/2/11
to 日本Androidの会
今回の事象に関して解決方法が見つかりましたので投稿いたします。

【解決方法】
・scheme情報をhost名またはpath名まで指定させる
 -AndroidManifest-
 <data android:scheme="testApp" android:host="test.co.jp"/>
 -リンク-
 <A href="testApp://test.co.jp">アプリ起動</A>

上記の方法により、アプリのフィルタリングが正常に動作してアプリ起動をすることができました。
(Galaxy s,Xperia、LYNXでも正常な動作を確認)

原因としてはGalaxy Tab固有の設定等が考えられます。
(あくまでも推測であり、確認はできていません)

crazycircuit7

unread,
Mar 24, 2011, 5:00:54 AM3/24/11
to 日本Androidの会
お久しぶりです。
私も今日同じような不具合でいろいろやってました。
分かった事を書いておきます。

android:scheme=""

で指定する文字列は全て小文字が良い様です。
実験した所、以下の様になります。

android:scheme="testApp" だと Xperia OK Galaxy tab NG
android:scheme="testapp" だと Xperia OK Galaxy tab OK

呼び出し元もすべて小文字で統一した方が無難です。
ex: <A href="testapp://test.co.jp">アプリ起動</A>

「android:scheme=」をすべて小文字にすれば「android:host=」の指定は関係ないかもしれません。
私の環境でも大文字、小文字混在でXperiaでは動いていたのでGalaxy Tabで動かず悩みました。

あんざいゆき

unread,
Mar 24, 2011, 5:58:48 AM3/24/11
to android-g...@googlegroups.com
あんざいです

 Scheme クラス
 http://developer.android.com/reference/org/apache/http/conn/scheme/Scheme.html
 に

 Schemes are identified by lowercase names. Supported schemes are
typically collected in a SchemeRegistry.

 って書いてありますよ。 lowercase name = 小文字 ですね。


2011年3月24日18:00 crazycircuit7 <crazyc...@gmail.com>:

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

--
あんざい ゆき
anzai...@gmail.com
twitter : @yanzm
Y.A.Mの雑記帳 http://y-anz-m.blogspot.com/

あんざいゆき

unread,
Mar 24, 2011, 6:01:12 AM3/24/11
to android-g...@googlegroups.com
失礼。こっちでしたね。

http://developer.android.com/guide/topics/manifest/data-element.html#scheme

でも Note に

Note: scheme matching in the Android framework is case-sensitive,
unlike the RFC. As a result, you should always specify schemes using
lowercase letters.

ってあるので、やっぱり lowercase = 小文字 ですね。

あんざい

2011年3月24日18:58 あんざいゆき <anzai...@gmail.com>:

crazycircuit7

unread,
Apr 7, 2011, 5:26:29 AM4/7/11
to 日本Androidの会
あんざいさんへ

なるほど勉強になりました。情報元ありがとうございます。
HP何度か参考にさせてもらってます。
Reply all
Reply to author
Forward
0 new messages