como usar o glreadpixels com o Android - geralmente obtenha zeros

Estou tentando detectar o objeto opengl sob o cursor ... Eu o li referido como picking. Aqui está o meu código:

public int makeBuffer(GL10 gl, int x, int y) {

    ByteBuffer PixelBuffer = ByteBuffer.allocateDirect(4);
    PixelBuffer.order(ByteOrder.nativeOrder());
    PixelBuffer.position(0);
    int mTemp = 0;
    gl.glReadPixels((int)x, (int) y, 1, 1, GL10.GL_RGBA, GL10.GL_UNSIGNED_BYTE, PixelBuffer);
    Log.e("Picking", " xy: x" + x + " y"+ y);
    byte b [] = new byte[4];
    PixelBuffer.get(b);
    Log.e("Picking", " rgba: r"+ PixelBuffer.get(0) + " g" + PixelBuffer.get(1) + " b" +
            PixelBuffer.get(2) + " a" + PixelBuffer.get(3));
    Log.e("Picking", " rgba: r"+ b[0] + " g" + b[1] + " b" +
            b[2] + " a" + b[3]);

    //mTemp = PixelBuffer.get(0);
    mTemp = b[0];

    Log.e("Picking", "result:" + mTemp );

    return mTemp;
}

Veja que a maior parte do código acima é de declarações de logcat. Meu código imprime zeros na tela para r, g e b. Para alfa, imprime '-1', traduzível para 255 (sem sinal) como 'alfa completo'. Estou tentando detectar uma cor na tela na posição x / y determinada. Eu ficaria feliz com um valor vermelho que esteja entre 1 e 15, pois essa é a cor que deve estar abaixo do toque. Eu esperaria que, se estivesse fazendo tudo errado, obteria todos os zeros, mas devo fazê-lo pelo menos parcialmente certo, pois estou recebendo alfa. Também incluí no meu manifesto linhas que dizem ao telefone que eu uso as permissões para o 'toque superficial' e o 'buffer de quadro de leitura'. Não sei se essas linhas estão funcionand

<uses-permission
android:name="android.permission.ACCESS_SURFACE_FLINGER" />
<uses-permission android:name="android.permission.READ_FRAME_BUFFER" /

Qualquer ajuda seria apreciada

questionAnswers(2)

yourAnswerToTheQuestion