调用摄像头时报ArrayIndexOutOfBoundsException错,求解决!
在调用摄像头时 报错:
12-02 16:30:34.690: ERROR/(175): vibrator_on ---timeout_ms =10
12-02 16:40:23.695: ERROR/PowerManagerService(175): getAutoBrightnessValue
12-02 16:40:23.695: ERROR/PowerManagerService(175): java.lang.ArrayIndexOutOfBoundsException
12-02 16:40:23.695: ERROR/PowerManagerService(175): at com.android.server.PowerManagerService.getAutoBrightnessValue(PowerManagerService.java:2931)
12-02 16:40:23.695: ERROR/PowerManagerService(175): at com.android.server.PowerManagerService.lightSensorChangedLocked(PowerManagerService.java:3007)
12-02 16:40:23.695: ERROR/PowerManagerService(175): at com.android.server.PowerManagerService.access$5700(PowerManagerService.java:114)
12-02 16:40:23.695: ERROR/PowerManagerService(175): at com.android.server.PowerManagerService$10.run(PowerManagerService.java:2959)
12-02 16:40:23.695: ERROR/PowerManagerService(175): at android.os.Handler.handleCallback(Handler.java:587)
12-02 16:40:23.695: ERROR/PowerManagerService(175): at android.os.Handler.dispatchMessage(Handler.java:92)
12-02 16:40:23.695: ERROR/PowerManagerService(175): at android.os.Looper.loop(Looper.java:130)
12-02 16:40:23.695: ERROR/PowerManagerService(175): at android.os.HandlerThread.run(HandlerThread.java:60)
问下怎么回事???
这是 拍照方法
/**
* 拍照
*/
public void takePhoto() {
try {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
System.out.println("msg打印出外部存储目录 :"
+ Environment.getExternalStorageDirectory());
// if
// (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState()))
// {
File file1 = new File(fileName2);
// 返回一个布尔值,指示此文件是否可以在底层的文件系统中发现。
if (file1.exists()) {
if (file1.isFile()) {
file1.delete();
// 创建该文件的结尾的文件名,包括完整的目录路径,需要创建这个目录命名目录。
file1.mkdirs();
}
} else {
file1.mkdir();
}
Random random = new Random();
SimpleDateFormat sDateFormat = new SimpleDateFormat(
"yyyyMMddhhmmss");
String date = sDateFormat.format(new java.util.Date());// 设置日期格式
// 图片的生成名字通过随机数产生
photoName1 = date + random.nextInt(10) + random.nextInt(10) + ".jpg";
System.out.println("图片文件名字 photoName = " + photoName1);
out = new File(fileName2, photoName1);
// 文件的标示符 创建一个文件的URI。URI形式的“文件://" 路径中的字符编码'/'例外。
Uri uri = Uri.fromFile(out);
intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
startActivityForResult(intent, 0);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 截获Activity返回的图像数据的事件方法
*/
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if ((requestCode == 0) && (resultCode == RESULT_OK)) {
if (out.exists()) {
photoSrc = fileName2 + "/" + photoName1;
}
} else if ((requestCode == 1) && (resultCode == RESULT_OK)) {
Uri uri = data.getData();
Cursor cursor = this.getContentResolver().query(uri, null, null,
null, null);
if (cursor != null) {
cursor.moveToFirst();
photoSrc = cursor.getString(1);
}
}
if (photoSrc != null) {
// BitmapFactory --从各种来源,包括文件,流和字节数组创建Bitmap对象
BitmapFactory.Options options = new BitmapFactory.Options();
// 2的权力往往是更快/更容易解码器的兑现。
options.inSampleSize = 2;
// 文件解码
Bitmap bm = BitmapFactory.decodeFile(photoSrc, options);
showPhoto.setImageBitmap(bm);
}
super.onActivityResult(requestCode, resultCode, data);
}