私はまだかなり新しいアンドロイドで、イメージをSQLite DBに保存する方法を見つけようとしています。私は写真を撮るためにボタンのクリックイベントでカメラを呼び出し、それをblobとしてデータベースに保存しようとしています。私はこれが最善の方法ではないかもしれないと理解しており、それが言われていると私はこれをどうやってやるのか迷っています。私が最終的に必要とするのは、自分のアプリでカメラにアクセスし、写真を撮ることを許可し、写真をデータベースに保存できるようにすることです。私はいくつかのフォーラムを見てきましたが、人々はビットマップを返すよう提案し、バイト配列に変換して保存しました。それはうまくいくだろうが、もう一度私は迷っている。どんな助けも大いに評価されるだろう。ここで私が現在使用していたコードされていますAndroid:カメラで写真を撮り、ビットマップをバイト配列に変換してsqlite dbに保存する方法は?
//---Pressing this button will call the built in Camera---
Button b4 = (Button) findViewById(R.id.btn_addPhotos);
b4.setOnClickListener(new OnClickListener()
{
public void onClick(View arg0){
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
//startActivity(cameraIntent);
startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST);
}
});
はここにonActivityResult()メソッドされています
protected void onActivityResult(int requestCode, int resultCode, Intent data){
if (resultCode == Activity.RESULT_CANCELED)
{
//handles when camera was canceled...
Toast.makeText(this, "Camera was cancelled by user...", Toast.LENGTH_LONG).show();
} else if (resultCode == Activity.RESULT_OK)
{
Bitmap imageReturned = (Bitmap) data.getExtras().get("data");
db.open();
boolean id = db.insertImage(AssessmentID, imageReturned, "test");
db.close();
//displays message, if successful...
displayMessage(id);
};
};
ここでは、データベースクラスの私のinsertメソッドです:
//---insert image into the database---
public boolean insertImage(String AssessmentID, Bitmap picture, String name)//, String sub, String parcel, String lot, String elevation, String datum)
{
boolean num = false;
try
{
db.execSQL("insert into storedImages values(" + AssessmentID + ", " + picture + ", " + name + ");");
num = true;
//getting null pointer when trying to insert....
}catch(SQLException e)
{
e.printStackTrace();
num = false;
};
//returns true if successful and false if not...
return num;
}
ここれますログキャストのエラー:
10-23 15:10:51.890: ERROR/NvOmxCameraSettingsparser(89): Param type 13 not supported
10-23 15:10:51.890: ERROR/NvOmxCameraSettingsparser(89): Param type 49 not supported
10-23 15:10:52.200: ERROR/ImagerODM-OV5650(89): SetParameter(): 32 not supported
10-23 15:10:57.510: ERROR/NvOmxCamera(89): Already called release()
10-23 15:11:08.020: ERROR/AndroidRuntime(10123): FATAL EXCEPTION: main
10-23 15:11:08.020: ERROR/AndroidRuntime(10123): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1337, result=-1, data=Intent { act=inline-data (has extras) }} to activity {king.chad.SDE/king.chad.SDE.NewResidentialActivity}: java.lang.NullPointerException
10-23 15:11:08.020: ERROR/AndroidRuntime(10123): at android.app.ActivityThread.deliverResults(ActivityThread.java:2818)
10-23 15:11:08.020: ERROR/AndroidRuntime(10123): at android.app.ActivityThread.handleSendResult(ActivityThread.java:2861)
10-23 15:11:08.020: ERROR/AndroidRuntime(10123): at android.app.ActivityThread.access$1000(ActivityThread.java:122)
10-23 15:11:08.020: ERROR/AndroidRuntime(10123): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1054)
10-23 15:11:08.020: ERROR/AndroidRuntime(10123): at android.os.Handler.dispatchMessage(Handler.java:99)
10-23 15:11:08.020: ERROR/AndroidRuntime(10123): at android.os.Looper.loop(Looper.java:132)
10-23 15:11:08.020: ERROR/AndroidRuntime(10123): at android.app.ActivityThread.main(ActivityThread.java:4123)
10-23 15:11:08.020: ERROR/AndroidRuntime(10123): at java.lang.reflect.Method.invokeNative(Native Method)
10-23 15:11:08.020: ERROR/AndroidRuntime(10123): at java.lang.reflect.Method.invoke(Method.java:491)
10-23 15:11:08.020: ERROR/AndroidRuntime(10123): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
10-23 15:11:08.020: ERROR/AndroidRuntime(10123): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
10-23 15:11:08.020: ERROR/AndroidRuntime(10123): at dalvik.system.NativeStart.main(Native Method)
10-23 15:11:08.020: ERROR/AndroidRuntime(10123): Caused by: java.lang.NullPointerException
10-23 15:11:08.020: ERROR/AndroidRuntime(10123): at king.chad.SDE.DBAdapter.insertImage(DBAdapter.java:406)
10-23 15:11:08.020: ERROR/AndroidRuntime(10123): at king.chad.SDE.NewResidentialActivity.onActivityResult(NewResidentialActivity.java:168)
10-23 15:11:08.020: ERROR/AndroidRuntime(10123): at android.app.Activity.dispatchActivityResult(Activity.java:4581)
10-23 15:11:08.020: ERROR/AndroidRuntime(10123): at android.app.ActivityThread.deliverResults(ActivityThread.java:2814)
10-23 15:11:08.020: ERROR/AndroidRuntime(10123): ... 11 more
よろしいですか、この例がありますか? – cking24343
私は、書き込むイメージパスのテーブルを作成しました。私はsdcardにイメージを書き出し、今晩の後半に保存するためのファイルパスを取得することを検討します。私はあなたの助けに感謝します。私はこのことが私のために働くかどうかをあなたに教えてくれます。 – cking24343