Google Maps街景在网页、模拟器正常,真机黑屏问题求助
Google Maps街景真机黑屏问题排查与解决
问题情况
Google Maps街景功能在网页、Android模拟器上均可正常加载,但在真实设备(已测试Android 9、Android 12、Android 13系统)上打开后显示黑屏,各系统测试结果一致:
- 模拟器Google Maps版本:11.28.7
- 真实设备Google Maps版本:11.60.0703
- 测试坐标:40.036716,42.171997(对应网页街景可正常访问)
当前调用街景的代码:
String destinationCoord = "40.036716,42.171997"; Uri uri = Uri.parse("google.streetview:cbll=" + destinationCoord); Intent mapIntent = new Intent(Intent.ACTION_VIEW, uri); mapIntent.setPackage("com.google.android.apps.maps"); mContext.startActivity(mapIntent);
真机显示效果:
解决思路&方案
1. 更换Intent调用的Uri格式
新版本Google Maps(11.60+)可能对google.streetview:旧协议存在兼容性问题,可尝试以下两种替代方式:
方式一:使用geo协议搭配街景图层参数
Uri uri = Uri.parse("geo:" + destinationCoord + "?layer=c"); Intent mapIntent = new Intent(Intent.ACTION_VIEW, uri); mapIntent.setPackage("com.google.android.apps.maps"); mContext.startActivity(mapIntent);
方式二:直接调用网页街景链接
利用系统唤起Maps App处理网页链接,兼容性更强:
Uri uri = Uri.parse("http://maps.google.com/maps?q=&layer=c&cbll=" + destinationCoord); Intent mapIntent = new Intent(Intent.ACTION_VIEW, uri); mapIntent.setPackage("com.google.android.apps.maps"); mContext.startActivity(mapIntent);
2. 检查设备基础环境
- 确保真机上的Google Play服务为最新版本,旧版本服务可能与新版Maps不兼容;
- 确认设备已登录有效的Google账号,未登录状态下部分Maps功能可能受限;
- 检查网络环境,确保设备能正常访问Google街景资源。
3. 验证坐标的移动端可用性
部分地区的街景资源可能仅对网页端开放,或移动端加载存在延迟。可更换热门坐标(如纽约时代广场:40.758896,-73.985130)测试,排除坐标本身的问题。
4. 适配新版Maps的Intent动作
尝试使用Google官方推荐的街景Intent动作:
Uri uri = Uri.parse("google.streetview:cbll=" + destinationCoord); Intent mapIntent = new Intent("com.google.android.gms.maps.streetview.action.VIEW", uri); mapIntent.setPackage("com.google.android.apps.maps"); mContext.startActivity(mapIntent);
内容的提问来源于stack exchange,提问作者Mustafa Bekeç
相关产品推荐
相关产品推荐

