Эти разрешения доступны только для приложений подписи. Приложения, которые были подписаны при сборке Android ROM. Так что они ничего не делают для обычных приложений.

аюсь обнаружить объект opengl под курсором ... Я прочитал его, как сбор. Вот мой код:

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;
}

Обратите внимание, что большая часть кода выше - это операторы logcat. Мой код выводит нули на экран для r, g и b. Для альфы выводится «-1», который переводится в 255 (без знака) как «полная альфа». Я пытаюсь определить цвет на экране в заданной позиции х / у. Я был бы счастлив с красным значением, которое находится где-то между 1 и 15, поскольку это цвет, который должен быть ниже касания. Я ожидал бы, что, если бы я делал это совершенно неправильно, я получал бы все нули, но я должен делать это по крайней мере частично правильно, поскольку я получаю альфу. Я также включил в свой манифест строки, которые сообщают телефону, что я использую разрешения для «flinger поверхности» и «буфера чтения кадра». Я не знаю, работают ли эти строки.

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

любая помощь будет оценена.

Ответы на вопрос(2)

Ваш ответ на вопрос