设为首页 加入收藏

TOP

Android后台开启服务默默拍照(二)
2014-11-24 03:14:25 来源: 作者: 【 】 浏览:5
Tags:Android 后台 开启 服务 默默 拍照
Manager() {
Intent intent = new Intent();
intent.setAction("com.vegetables_source.alarm");
PendingIntent pi = PendingIntent.getBroadcast(this, 0, intent, 0);
am.cancel(pi);


// 注销广播
unregisterReceiver(alarmReceiver);
}


BroadcastReceiver alarmReceiver = new BroadcastReceiver() {


@Override
public void onReceive(Context context, Intent intent) {
if ("com.vegetables_source.alarm".equals(intent.getAction())) {


if (camera != null) {
SurfaceView dummy = new SurfaceView(getBaseContext());
try {
camera.setPreviewDisplay(dummy.getHolder());
} catch (IOException e) {
e.printStackTrace();
}
camera.startPreview();


camera.takePicture(null, null, new PhotoHandler(
getApplicationContext()));
}


}


}
};


private Camera openFacingBackCamera() {
Camera cam = null;
Camera.CameraInfo cameraInfo = new Camera.CameraInfo();
;
for (int camIdx = 0, cameraCount = Camera.getNumberOfCameras(); camIdx < cameraCount; camIdx++) {
Camera.getCameraInfo(camIdx, cameraInfo);
if (cameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_BACK) {
try {
cam = Camera.open(camIdx);
} catch (RuntimeException e) {
e.printStackTrace();
}
}
}


return cam;
}
}


进行拍照存储的操作代码如下:


package com.yang.handle;


import java.io.File;
import java.io.FileOutputStream;
import java.text.SimpleDateFormat;
import java.util.Date;


import android.content.Context;
import android.hardware.Camera;
import android.hardware.Camera.PictureCallback;
import android.os.Environment;
import android.widget.Toast;


public class PhotoHandler implements PictureCallback {


private final Context context;


public PhotoHandler(Context context) {
this.context = context;
}


@Override
public void onPictureTaken(byte[] data, Camera camera) {


File pictureFileDir = getDir();


if (!pictureFileDir.exists() && !pictureFileDir.mkdirs()) {


Toast.makeText(context, "Can't create directory to save image.",
Toast.LENGTH_LONG).show();
return;


}


SimpleDateFormat dateFormat = new SimpleDateFormat("yyyymmddhhmmss");
String date = dateFormat.format(new Date());
String photoFile = "Picture_" + date + ".jpg";


String filename = pictureFileDir.getPath() + File.separator + photoFile;


File pictureFile = new File(filename);
System.out.println("filename is "+ filename);


try {
FileOutputStream fos = new FileOutputStream(pictureFile);
fos.write(data);
fos.close();
Toast.makeText(context, "New Image saved:" + photoFile,
Toast.LENGTH_LONG).show();
} catch (Exception error) {
Toast.makeText(context, "Image could not be saved.",
Toast.LENGTH_LONG).show();
}
}


private File getDir() {
File sdDir = Environment
.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
return new File(sdDir, "ServiceCamera");
}
}


项目代码如下:


具体下载目录在 /2013年资料/7月/7日/Android后台开启服务默默拍照


相关阅读:


首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇2013年华为校园招聘机试(未知) 下一篇Android中TextView中内容不换行的..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·如何利用Python做数 (2025-12-24 23:48:36)
·如何使用python进行 (2025-12-24 23:48:34)
·python 爬虫入门该怎 (2025-12-24 23:48:31)
·Java 实现多个大文件 (2025-12-24 23:22:00)
·Java多线程编程在工 (2025-12-24 23:21:56)