autolink如何:地图工作

Mav*_*ick 5 android textview

我正在使用antroid:TextView的autoLink ="map"属性转到地图并找到与该textview相关联的地址.

但它表现得很凶悍,只能找到一些地址.这是我正在尝试的代码:

<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="match_parent"
  android:layout_height="match_parent">
    <TextView
        android:id="@+id/textViewautoLink"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/autolinktext"
        android:autoLink="map"></TextView>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

这是我的strings.xml

strings.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="autolinktext">1600 Amphitheatre Parkway, Mountain View, CA 94043 </string>
</resources>
Run Code Online (Sandbox Code Playgroud)

问题是:

假设我正在编写上面的字符串,即 1600 Amphitheatre Parkway,Mountain View,CA 94043, 那么它的工作正常,textView变为蓝色,当我点击它时,它会搜索地图上的地址.

当我将此地址更改为:1600 Amphitheatre Parkway,Mumbai,IN时, 它也显示相同的内容并尝试搜索地址,但由于地址错误,它无法找到它.没关系.

但当我写其他地址时:600 Band Stand,Mumbai,IN Then

1)textview不是蓝色

2)它似乎不可点击

3)由于它不可点击,因此找不到地址.

我正在搜索谷歌,但我没有得到任何理由这种行为.我也想知道

有没有写这个地图地址的格式?

另外android如何通过在String中写入地址来知道地址是否有效,因为我已经以相同的格式写了相同的地址只更改了字符串,结果是一个地址是可点击的而其他地址不是.

请帮忙.

nan*_*esh 9

以下是从匹配器中挑选的评论

  1. 查找街道号码的1到5位数字(不支持"One Microsoft Way")
  2. 忽略如果前面带有'#',Suite,Ste,Rm
  3. 寻找两个或两个以上的单词(最多5个?北弗兰克劳埃德赖特大道)
    注意:"北山街的圆圈" 有六个单词,较低的'at' - 允许at,by,of,in,和......?
  4. 如果一个单词以小写字母开头,则不匹配
    允许:,. - #/(1/2)'"
  5. 寻找一个或两个分隔符来表示可能的第二个addr行和城市名称
    查找完整的州名,或州两个字母和/或邮政编码(5或9位数)
  6. 现在查找街道后缀,无论是完整形式还是缩写形式,如果有星号,可选择's'

来源:CacheBuilder.cpp.有关详细信息,您可以在webviewcore的CacheBuilder :: FindPartialAddress中检查确切的算法

据我所知,从代码中只看到以LleY,NneX,RCade,VEnue,LAMEDA,aYoU等结尾的街道名称.在您的情况下,乐队支架与美国常见的街道名称不匹配