我们能否在短信中的Android传递一个开放的,而不是超链接(Can we pass a Uri i

2019-09-30 04:48发布

我搞清楚,可以在我们的SMS消息,而不是超链接的Android传递一个URI。 我正在考虑以下情形:
1)我打开DDMS
2)在仿真器控制面板,我发送SMS为“http://www.google.com”
3)短信到达模拟器。
4)我打开SMS和消息http://www.google.com具有超链接如下所示。
5)我点击链接并重定向到浏览器中打开我谷歌网站在里面。

考虑另一种情形:
1)我打开DDMS
2)在仿真器控制面板,我发送SMS为“myscheme://com.android.myhost/mypath”
3)短信到达模拟器。
4)我打开手机短信,它显示我的信息myscheme://com.android.myhost/mypath
5)本人点击链接并重定向到其与上述开放的注册的应用程序。

我怎么去这个。 有什么建议么?

问候和感谢
Sohaib拉赫曼

Answer 1:

我不会那样做。 不要发明自己的自定义方案。

相反,当你有一个应用程序安装也声称支持特定的URL结构中的第一种方法会工作得很好,这么久。

例如,如果您已经安装了条码扫描仪,像一个URL http://zxing.appspot.com/scan会一旦链接被用户点击启动条形码扫描应用程序。 这是因为,条码扫描仪具有以下内容的活动<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>

有两个好处,这种做法在定制方案:

  1. IETF的成员将不会威胁到打破你的膝盖,创建未经授权方案。 :-)

  2. 链接仍然有效,即使受助人谁不是在Android或没有安装条码扫描仪。 如果您访问http://zxing.appspot.com/scan从您正在使用,以查看该SO回答的Web浏览器,你会发现它会导致一个有效的网页,从Android设备用户可以点击下载条形码扫描器。 您的自定义方案的方法创建一个完全没用的,其他人谁不安装应用程式的网址(例如,有人试图发送您的短信给别人)。

现在,某些水果味的手机操作系统鼓励创建自己的自定义方案,对于那些深不可测给我的理由。 如果你真的一定要做到这一点,你可以使用一个<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>


文章来源: Can we pass a Uri in an SMS message instead of hyperlink in Android
标签: android sms uri