【发布时间】:2013-02-08 19:08:08
【问题描述】:
我正在制作一个应用程序,它可以在手机开始响铃时打开手电筒,并在它停止响铃时将其关闭。问题是当电话响起时相机被锁定,并且对它的对象引用丢失了,所以我不知道以后如何关闭它。
我正在使用 BroadcastReceiver 来打开/关闭它:
@Override
public void onReceive(Context context, Intent intent) {
String state = intent.getStringExtra(TelephonyManager.EXTRA_STATE);
if (TelephonyManager.EXTRA_STATE_RINGING.equals(state)) {
if (context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH)) {
cam = Camera.open();
Parameters p = cam.getParameters();
p.setFlashMode(Parameters.FLASH_MODE_TORCH);
cam.setParameters(p);
cam.startPreview();
}
}
if (TelephonyManager.EXTRA_STATE_IDLE.equals(state)) {
cam = Camera.open();
cam.stopPreview();
cam.release();
}
}
有谁知道如何保留对相机对象的引用或任何解决方法?我想到了使用服务,但市场上的其他应用似乎没有使用服务来完成相同的任务。
【问题讨论】:
标签: android phone-call flashlight