2015-04-28 12 views
0

Привет, там? Есть один вопрос. nexus5 леденец.5.1 выпуск. Наверху есть код, который приходит в ответ на информацию о экране устройства в обновлении ScreenshotClient с помощью. Код выглядит следующим образом.NEXUS 5 lollipop 5.1 SurfaceFlinger error

unsigned int sw, sh, xsize, gsize, stride; 
... ... 
ScreenshotClient sc; 

sp<IBinder> display = SurfaceComposerClient::getBuiltInDisplay(ISurfaceComposer::eDisplayIdMain); 

if(sc.update(display,Rect(), sw,sh, false) != NO_ERROR) { 
    ... ... 

    sc.release(); 

    return 0; 
} 
stride = sc.getStride(); 

mapbase = sc.getPixels(); 
... ... 

Приведенный выше код в другой версии леденец работает нормально. Конечно, nexus7 такая же версия также работает нормально. Однако изменение в nexus5. Мой код для ссылки, но продолжайте цикл кода. И потому, что вы пытаетесь продолжить просмотр экрана. Сначала я код в nexus5 работает нормально. Однако, когда определенный счет, обновление не попадает под другой экран, чтобы вернуть ошибку. Больше ...! После того, как вы закончили мой код, повторно запустите, после того, как он станет еще одним колодцем, такое же явление происходит, когда дело доходит до определенного числа. Если вы знаете, что знаете об этом?

Прошу прощения, что на английском языке это не так хорошо.

+0

Что вы пытаетесь сделать? Можете ли вы просто использовать 'SurfaceComposerClient :: getDisplayInfo()', чтобы получить то, что вам нужно? – fadden

+0

@fadden Продолжайте получать информацию о экране устройства, повторно вызывающую код. Кстати, если вы повторили около 1000 раз, 'if (sc.update (отображение, Rect(), sw, sh, false)! = NO_ERROR)' эта часть вернется, чтобы продолжить Ошибка. Для справки, чтобы создать файл формата jpeg, используя импортированную информацию экрана устройства. T.T – user2362055

ответ

0

У меня были решения. ScreenshotClient sc и sp < IBinder> дисплей должен быть объявлен как глобальная переменная. Если класс объявлен, ошибка происходит несколько раз. (пример. Он объявлен в функции, которая должна быть повторена.)