Android開発で実機を持っていなかったので、中古で安かったF-06Fを購入しました。
開発するアプリはカメラアプリです。
友達の端末では実行できたのですが、F-06Fだとエラーが出てクラッシュしました。
OSは両方同じAndroid4.4です。
やはりらくらくスマートフォンとあって、カメラなどを使用することはできないのでしょうか?
ちゃんとカメラのパーミッションを許可してます。
どなたか原因分かる方いらっしゃいましたらご教授お願い致します。。
補足
ソースコードです
AutoCamera.java
package a.camera; import android.app.Activity; import android.bluetooth.BluetoothAdapter; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.hardware.Camera; import android.os.Bundle; import android.os.Environment; import android.os.Handler; import android.util.Log; import android.view.SurfaceHolder; import android.view.SurfaceView; import android.view.View; import android.view.Window; import android.view.WindowManager; import android.widget.Toast; import java.io.FileOutputStream; public class AutoCamera extends Activity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(new CameraView(this)); getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); } }
CameraPreview.java
package a.camera; import android.annotation.TargetApi; import android.content.Context; import android.graphics.PixelFormat; import android.hardware.Camera; import android.os.Build; import android.os.Handler; import android.util.Log; import android.view.SurfaceHolder; import android.view.SurfaceView; import android.widget.Toast; import java.io.BufferedOutputStream; import java.net.Socket; import static android.content.ContentValues.TAG; public class CameraView extends SurfaceView implements SurfaceHolder.Callback{ private SurfaceHolder holder; private Camera camera; private static final int WIDTH = 480; private static final int HEIGHT = 320; private static final int PORT = 49152; private static final String IP_ADDR = "192.168.11.2"; private static boolean is_save; public CameraView(Context context) { super(context); holder=getHolder(); holder.addCallback(this); holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); } @Override public void surfaceCreated(SurfaceHolder holder) { try { camera = Camera.open(0); camera.setPreviewDisplay(holder); } catch (Exception e) { } } @Override public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { Camera.Parameters parameters=camera.getParameters(); parameters.setPictureSize(WIDTH, HEIGHT); camera.setParameters(parameters); camera.startPreview(); faceDetection(); } @Override public void surfaceDestroyed(SurfaceHolder holder) { camera.setPreviewCallback(null); camera.stopPreview(); camera.release(); camera=null; } @TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH) public void faceDetection(){ final int standardFaceScore = 60000; try {camera.startFaceDetection(); } catch (IllegalArgumentException e) { } catch (RuntimeException e) {} camera.setFaceDetectionListener(new Camera.FaceDetectionListener() { @Override public void onFaceDetection(Camera.Face[] faces, Camera camera) { Log.d(TAG, "faces count: " + faces.length); for (Camera.Face face : faces) { Log.d(TAG, "face id: " + face.id); Log.d(TAG, "face score: " + face.score); Log.d(TAG, "face rect: " + face.rect.left + "," + face.rect.top + " - " + face.rect.right + "," + face.rect.bottom); if (face.mouth != null) { Log.d(TAG, "face mouth: " + face.mouth.x + "," + face.mouth.y); Log.d(TAG, "face leftEye: " + face.leftEye.x + "," + face.leftEye.y); Log.d(TAG, "face rightEye: " + face.rightEye.x + "," + face.rightEye.y); } if(face.score > standardFaceScore && !is_save){ takePicture(); } } } }); } public void takePicture() { // カメラのスクリーンショットの取得 camera.takePicture(null, null,new Camera.PictureCallback() { public void onPictureTaken(byte[] data,Camera camera) { Toast.makeText(getContext(), "撮影しました", Toast.LENGTH_LONG).show(); is_save = true; sendData(getContext(), data); new Handler().postDelayed(new Runnable() { @Override public void run() { is_save = false; } }, 3000); } }); } private void sendData(Context context, byte[] data){ // ソケットの作成 Socket socket; BufferedOutputStream out; try{ socket = new Socket(IP_ADDR, PORT); out = new BufferedOutputStream(socket.getOutputStream()); out.write(data); if(out != null) out.close(); if(socket != null) socket.close(); } catch (Exception ex){ ex.printStackTrace(); } } }
基本このエラーです。
12-02 16:16:33.598 1305-17957/? E/HCEOutdoorUtil: (413) int HCEView_ManagerSensor::getIdent() Error(ALooper_pollAll returns TIMEOUT. Set Initialized Values)
回答1件
あなたの回答
tips
プレビュー