Скриншот Google Map черный - PullRequest
       2

Скриншот Google Map черный

0 голосов
/ 25 февраля 2019

Я хочу сделать снимок экрана карты Google в моем проекте xamarin PCL.Карта отображается отлично.Но когда я пытаюсь сделать снимок экрана, он отображает черный экран части карты Google.

Map is displaying on screen like below

Но когда я пытаюсь сделать снимок кода, отображается снимок экранакак ниже.Screenshot via code

public interface IScreenshotService
{
   Task<byte[]> Capture();
}


public class ScreenshotService : IScreenshotService
{
    public static Activity Activity { get; set; }

    //public void SetActivity(Activity activity) => _currentActivity = activity 

    public async System.Threading.Tasks.Task<byte[]> Capture()
    {
        if (Activity == null)
        {
            throw new Exception("You have to set ScreenshotManager.Activity in your Android project");
        }

        var view = Activity.Window.DecorView;
        view.DrawingCacheEnabled = true;

        Bitmap bitmap = view.GetDrawingCache(true);

        byte[] bitmapData;

        using (var stream = new MemoryStream())
        {
            bitmap.Compress(Bitmap.CompressFormat.Png, 0, stream);
            bitmapData = stream.ToArray();
        }

        return bitmapData;
    }
}

Код для вызова функции

byte[] screenshotData = await DependencyService.Get<IScreenshotService>().Capture();

Можете ли вы помочь мне выяснить проблему?

Ответы [ 2 ]

0 голосов
/ 27 февраля 2019

Это может быть связано с тем, что вы делаете против Условий обслуживания Google Maps Platform, согласно статье:

3.2.4a "Нет очистки. Клиент не будет извлекать, экспортировать,очистить или кэшировать контент Карт Google для использования вне Сервисов. "

Вы можете посетить Условия предоставления услуг Карты Google , чтобы узнать больше о Лицензировании.

0 голосов
/ 26 февраля 2019

Я думаю, что это может быть Изображения карты не должны передаваться на ваши серверы или иным образом использоваться вне приложения , и вы можете использовать GoogleMap.snapshot метод для создания снимков карты

просто реализуйте следующий интерфейс: onSnapshotReady

public abstract void onSnapshotReady (Bitmap snapshot)

и вызов: снимок

public final void snapshot (GoogleMap.SnapshotReadyCallback callback)

, который вы также можете сослаться например (в jave): ответ на скриншот

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...