2015-04-28 2 views
0

Bonjour à tous? Il y a une question. Problème de nexus5 lollipop5.1. surfaceflinger il y a un code qui vient en réponse aux informations d'écran de périphérique dans la mise à jour de ScreenshotClient en utilisant. Le code ressemble à ceci.NEXUS 5 sucette 5.1 Erreur SurfaceFlinger

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(); 
... ... 

Le code ci-dessus, dans une autre version de lollipop, fonctionne normalement. Bien sûr, nexus7 la même version fonctionne également normalement. Cependant, le changement de nexus5. Mon code à référence, mais continue à coder la boucle est. Et parce que vous essayez de continuer à l'écran. Le premier code I de nexus5 fonctionne normalement. Cependant, quand un certain nombre est, mise à jour n'est pas venu sous l'autre écran pour retourner l'erreur. Plus ...! Après avoir terminé mon code, ré-exécuter, après c'est un autre puits, le même phénomène se produit quand il s'agit d'un certain nombre. Si vous êtes capable de savoir cela? Je suis désolé que ce ne soit pas si bon en anglais.

+0

Qu'essayez-vous de faire? Pouvez-vous utiliser 'SurfaceComposerClient :: getDisplayInfo()' pour obtenir ce dont vous avez besoin? – fadden

+0

@fadden Continuez à appeler plusieurs fois les informations de l'écran de l'appareil. En passant problème, si vous avez répété environ 1000 fois, 'si (sc.update (affichage, Rect(), sw, sh, faux)! = NO_ERROR)' cette partie reviendra à continuer Erreur. Pour référence, pour créer le fichier au format jpeg en utilisant les informations d'écran de périphérique importées. T.T – user2362055

Répondre

0

Je devais résoudre. ScreenshotClient sc et sp < IBinder> display doit être déclaré en tant que variable globale. Si la classe est déclarée, une erreur se produit plusieurs fois. (par exemple, il est déclaré dans la fonction à répéter.)