我有一个 TextView,它有一个自动链接的地址,这样点击它就会在地图或其他应用程序(例如 Google 地球)中打开地址。当您安装了地图应用程序时,它可以正常工作。我第一次在模拟器上尝试点击链接时,应用程序崩溃了,因为它找不到任何活动来处理链接。
截取链接并检查是否有合适的处理程序可用的最佳方法是什么,如果没有,我可以弹出一个很好的通知,将他们带到 Play 商店安装 Google 地图?
我有一个 TextView,它有一个自动链接的地址,这样点击它就会在地图或其他应用程序(例如 Google 地球)中打开地址。当您安装了地图应用程序时,它可以正常工作。我第一次在模拟器上尝试点击链接时,应用程序崩溃了,因为它找不到任何活动来处理链接。
截取链接并检查是否有合适的处理程序可用的最佳方法是什么,如果没有,我可以弹出一个很好的通知,将他们带到 Play 商店安装 Google 地图?
这不仅仅是是否安装了地图应用程序的问题——在 Android 4.3+ 中使用受限配置文件,地图应用程序可能已安装但当前用户无法使用。
现在,在它们修复之前URLSpan
,您需要URLSpan
用自己的子类批量替换实例,如StackOverflow 答案中所述。您的子类可以覆盖onClick(View)
并链接到ActivityNotFoundException
try
/catch
块内的超类,然后在这种情况下您可以在其中执行某些操作。
如果您是手动运行,则可以在完成工作Linkify
后进行修复。Linkify
如果您正在使用android:autoLink
,我认为您可以在setText()
通话后解决问题,但可能需要稍晚一些,因为我忘记了TextView
它的内部Linkify
通话确切时间。