您的位置:首页 > 其它

osmdroid中为何显示空地图

2016-04-27 13:38 351 查看
最近想搞一下Osmdroid,发现官方demo中显示地图的基本功能都无法实现。按照官网demo,地图上都是灰色格子。而下载了OpenStreetMapViewer源码,在AS中竟然可以显示地图,并且Manifest.xml中对于permission的配置也是一样的。原因(官网上其实也讲了):对于6.0以上的需要进行WRITE_EXTERNAL_STORAGED permission的许可。于是乎测试了一下4.3,api18,同样的代码果然可以显示地图。转回来看了下OpenStreetMapViewer源码,发现其竟然又检查了一边WRITE_EXTERNAL_STORAGED
。于是乎,copy一下checkpermission()函数,加入onCreate函数,代码如下:

final private[b]intREQUEST_CODE_ASK_MULTIPLE_PERMISSIONS=124;

private void checkPermissions(){

Stringmessage="osmdroidpermissions:";

Stringstorage="noStorageaccesstostoremaptiles.";

if(Build.VERSION.SDK_INT>=23){//api 22应该也是同样的问题

List<String>permissions=newArrayList<>();

if(ContextCompat.checkSelfPermission(this,Manifest.permission.WRITE_EXTERNAL_STORAGE)!=PackageManager.PERMISSION_GRANTED){
Log.d(message,storage);

permissions.add(Manifest.permission.WRITE_EXTERNAL_STORAGE);

String[]params=permissions.toArray(newString[permissions.size()]);

requestPermissions(params,REQUEST_CODE_ASK_MULTIPLE_PERMISSIONS);

}//else:Wealreadyhavepermissions,sohandleasnormal
Log.d(message,storage);
}
}
果然,久违的地图出现了。解决这个问题过程中发现,国内的资料实在是少,对于我等小白真是困难重重。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  osmdroid