0

電話のカメラを使用して、次のスニペットで画像をキャプチャしようとしています

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

null値が返されます。私のターゲット デバイスは、mmapi 機能を備えた nokia/2700_classic ですが、なぜ機能しないのかまだわかりません。誰か提案がありますか?

4

1 に答える 1

0

ご参考までに、

Android カメラを機能させるには、MidletBridge.java ファイルを編集する必要があります。このファイルは次のとおりです。

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

写真を撮影し、[保存] をクリックして byte[] 画像を設定した後、データを取得するには、2 つのメソッド (MidletBridge アクティビティ内) に一般的な Android カメラ コードを追加し、パブリック byte[] を追加する必要があります。

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

これを行った後、j2me ポリッシュ アプリケーションの任意の場所で MidletBridge をインスタンス化する必要があります。

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-Polish の人々に送りましたが、彼らがそれを公開したようには見えません。本当にすべてのソースが必要な場合は...行って、彼らを悩ませてください。

于 2012-12-10T19:29:25.700 に答える