j2me польский снимок экрана

Я пытаюсь использовать камеру телефона для захвата изображений со следующим фрагментом

        snapShotScreen = new SnapshotScreen( "Snapshot" );
        snapShotScreen.addCommand(cmdBack );
        snapShotScreen.addCommand(cmdCapture);
        snapShotScreen.setCommandListener( new ThreadedCommandListener( this ) );
        this.display.setCurrent(snapShotScreen);

и я получаю нулевое значение. мое целевое устройство - nokia/2700_classic с возможностью mmapi, я до сих пор не понимаю, почему оно не работает. у кого-нибудь есть предложения?


person Sunday Okpokor    schedule 03.06.2012    source источник
comment
нашел решение, экран снимка нуждается в стиле, который будет прикреплен к нему следующим образом: //#style snapshotScreen snapShotScreen = new SnapshotScreen(Snapshot);   -  person Sunday Okpokor    schedule 21.06.2012


Ответы (1)


К вашему сведению,

Чтобы камера Android работала, вам нужно отредактировать файл MidletBridge.java. В этом файле вы найдете:

J2ME-Polish_Root\j2mepolish-src\j2me\src\de\enough\polish\android\midlet\MidletBridge.java

Вам нужно будет добавить общий код камеры Android двумя способами (в рамках действия MidletBridge), а также общедоступный байт [] для получения данных после того, как вы сделали снимок, нажали «Сохранить» и установили изображение байта []:

MidletBridge.java file:

public byte[] imagebytearray = null;

public void startCameraIntent(){
        Intent i = new Intent("android.media.action.IMAGE_CAPTURE");
        startActivityForResult(intent, 10121);
}

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        switch (requestCode) {
            case 10121: 
                imagebytearray = (byte[]) data.getExtras().get("data");
                break;
        }
}

После того, как вы это сделаете, вам нужно будет создать экземпляр MidletBridge в любом месте вашего приложения для полировки j2me, вызвав

de.enough.polish.android.midlet.MidletBridge m = new de.enough.polish.android.midlet.MidletBridge();
m.startCameraIntent();
//I couldnt remember if the code continues here after you have taken the picture
byte[] img = m.imagebytearray;
//If the code doesnt pause here, you can just use a button to retreive the image or store the 
//image within the RMSStorage -- need some more code for that -- and then retreive it that way.

Я надеюсь, что это поможет кому-то, поскольку мне потребовались недели, чтобы зайти так далеко. Мое приложение работало хорошо и было продано. Я потерял исходный код, иначе все пользователи J2ME-Polish были бы очень счастливы. Работал с Blackberry, Nokia, Android, а также Windows CE.

Кстати. В то время я отправил весь этот фрагмент кода польским людям J2ME, и похоже, что они его не опубликовали. Если вам действительно нужны все исходники... Идите и побеспокоите их.

person Pierre    schedule 10.12.2012