1

Androidのハイパーリンクの代わりにSMSメッセージでURIを渡すことができるかどうかを考えています。次のシナリオを検討しています
。1)DDMSを開きます
。2)エミュレータコントロールパネルで、「http://www.google.com」としてSMSを送信します
。3)SMSがエミュレータに到着します。
4)SMSを開くと、メッセージhttp://www.google.comにここに示すようなハイパーリンクがあります。
5)リンクをクリックすると、ブラウザにリダイレクトされ、その中のGoogleサイトが開きます。

別のシナリオを考えてみましょう
。1)DDMSを開きます
。2)エミュレータコントロールパネルで、「myscheme://com.android.myhost/mypath」としてSMSを送信しています
。3)SMSがエミュレータに到着します。
4)SMSを開くと、メッセージmyscheme://com.android.myhost/mypathが表示されます。5
)リンクをクリックすると、上記のUriに登録されているアプリケーションにリダイレクトされます。

どうすればこれに行くことができますか。助言がありますか?

よろしく、ありがとう
Sohaib Rahman

4

1 に答える 1

2

私はそのようにはしません。独自のカスタムスキームを発明しないでください。

代わりに、その特定のURL構造をサポートすると主張するアプリがインストールされている限り、最初のアプローチは問題なく機能します。

たとえば、バーコードスキャナーがインストールされているhttp://zxing.appspot.com/scan場合、ユーザーがリンクをクリックすると、のようなURLでバーコードスキャナーアプリが起動します。これは、バーコードスキャナーが次の<intent-filter>要素を持つアクティビティを持っているためです。

  <intent-filter>
    <action android:name="android.intent.action.VIEW"/>
    <category android:name="android.intent.category.DEFAULT"/>
    <category android:name="android.intent.category.BROWSABLE"/>
    <data android:scheme="http" android:host="zxing.appspot.com" android:path="/scan"/>
  </intent-filter>

カスタムスキームに比べて、このアプローチには2つの利点があります。

  1. IETFのメンバーは、許可されていないスキームを作成するために、膝蓋骨を壊すと脅迫することはありません。:-)

  2. Androidを使用していない、またはバーコードスキャナーがインストールされていない受信者でも、リンクは引き続き機能します。このSO回答を表示するために使用しているWebブラウザーからhttp://zxing.appspot.com/scanにアクセスすると、Androidデバイスユーザーがクリックしてダウンロードできる有効なWebページにつながることがわかります。バーコードスキャナ。カスタムスキームのアプローチでは、アプリをインストールしていない他のユーザーにはまったく役に立たないURLが作成されます(たとえば、誰かがSMSを他のユーザーに転送しようとします)。

さて、特定のフルーツフレーバーのモバイルオペレーティングシステム、私には計り知れない理由で、独自のカスタムスキームを作成することを奨励しています。あなたがそれをやりたいと本当に本当に確信しているなら、あなたは<intent-filter>それにあなたの計画でを使うでしょう:

  <intent-filter>
    <action android:name="android.intent.action.VIEW"/>
    <category android:name="android.intent.category.DEFAULT"/>
    <category android:name="android.intent.category.BROWSABLE"/>
    <data android:scheme="zxing" android:host="scan" android:path="/"/>
  </intent-filter>
于 2012-07-04T11:54:59.987 に答える