我正在为 Xamarin Android 使用 .Net 运行时 sdk (v.100)。我正在尝试将图块下载为 .tpk 以供我的移动应用程序离线使用。
我已经设法使用 AuthenticationManager 为我的应用程序提供了一个令牌。我可以通过在 ExportTileCacheTask 上调用 ExportTileCache 成功创建 ExportTileCacheTask 并创建 ExportTileCacheJob,但作业的状态似乎永远不会改变。当我在调用 ExportTileCache 后立即检查作业状态时,它是“NotStarted”并且 ServerId =“”。我的 ExportJob_JobChanged 处理程序上有一个断点,无论我等待多长时间,它都不会被击中。
有任何想法吗?下面的代码:
var serviceUri = new Uri("https://tiledbasemaps.arcgis.com/arcgis/rest/services/World_Imagery/MapServer");
var tokenUri = new Uri("https://www.arcgis.com/sharing/rest");
try
{
var serverInfo = new ServerInfo
{
ServerUri = tokenUri,
TokenAuthenticationType = TokenAuthenticationType.OAuthClientCredentials,
OAuthClientInfo = new OAuthClientInfo { ClientId = MYCLIENTID, ClientSecret = MYCLIENTSECRET) },
};
AuthenticationManager.Current.RegisterServer(serverInfo);
var cred = await AuthenticationManager.Current.GenerateCredentialAsync(tokenUri, new GenerateTokenOptions { });
var exportTask = await ExportTileCacheTask.CreateAsync(serviceUri, cred);
var exportParams = await exportTask.CreateDefaultExportTileCacheParametersAsync(aoi, 50000, 10000);
job = exportTask.ExportTileCache(exportParams, localFilePath);
job.JobChanged += ExportJob_JobChanged;
}
catch (Exception e)
{
e.ToString();
}