0

こんにちは?1つの質問があります。nexus5 lollipop5.1 の問題です。surfaceflinger を使用して ScreenshotClient update でデバイスの画面情報に応答して来るコードがあります。コードは次のようになります。

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

上記のコードは、他の lollipop バージョンでは正常に動作しています。もちろん同じバージョンのnexus7も正常に動作します。ただし、nexus5 の変更。参照する私のコードですが、コードのループを続けます。そして、画面を継続して取得しようとするためです。まず nexus5 のコードは正常に動作しています。ただし、一定の回数になると、他画面下に更新が来ずエラーを返します。もっと ...!自分のコードを完成させた後、再実行して、別の井戸の後で、特定の数になると同じ現象が発生します。あなたがこれについて知っている能力者なら?

英語が下手ですみません。

4

1 に答える 1

0

解いていた。ScreenshotClient scおよびsp < IBinder > 表示は、グローバル変数として宣言する必要があります。クラスが宣言されている場合、エラーが数回発生します。(例。関数内で繰り返し宣言する。)

于 2015-05-27T09:32:22.177 に答える