我正在尝试创建一个基本的查找我的手机应用程序,但我遇到了一个小问题。到目前为止,我可以向我的手机发送一个代码字,并让它播放一首歌曲。接下来,我希望能够发送一个不同的关键字,并让它在稳定的灯光或脉动的情况下打开相机闪光灯。到目前为止,我已经看到了大量的示例代码,但我不明白为什么它不能为我工作。
我已经在我的清单中包含了访问相机和相机闪光灯的权限。我已经尝试了这个链接Setting Parameters.FLASH_MODE_TORCH doesn't work on Droid X 2.3中的两个示例
然而,我看到的打开相机闪光灯的其他几个选项需要整个类,而不是一个小函数。
以下是我到目前为止拥有的代码:
import java.util.Timer;
import java.util.TimerTask;
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.ContentResolver;
import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.graphics.Camera;
import android.hardware.*;
import android.hardware.Camera.Parameters;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Bundle;
import android.telephony.SmsMessage;
import android.widget.Toast;
public class SmsReceiver extends BroadcastReceiver {
public static final String SMS_EXTRA_NAME = "pdus";
public static final String SMS_URI = "content://sms";
public void onReceive(Context context, Intent intent) {
// Get SMS map from Intent
Bundle extras = intent.getExtras();
String messages = "";
if (extras != null) {
// Get received SMS array
Object[] smsExtra = (Object[]) extras.get(SMS_EXTRA_NAME);
// Get ContentResolver object for pushing encrypted SMS to incoming
// folder
ContentResolver contentResolver = context.getContentResolver();
for (int i = 0; i < smsExtra.length; ++i) {
SmsMessage sms = SmsMessage.createFromPdu((byte[]) smsExtra[i]);
String body = sms.getMessageBody().toString();
String address = sms.getOriginatingAddress();
messages += "SMS from " + address + " :\n";
messages += body + "\n";
}
// Display SMS message
Toast.makeText(context, "WE GOT A MESSAGE", Toast.LENGTH_SHORT)
.show();
// plays eye of the tiger for 45 seconds
if (messages.contains("Hey Sarah")) {
final MediaPlayer mp = MediaPlayer.create(context,
R.raw.sound_file_1);
mp.start();
// play ring tone for 45 seconds
new Timer().schedule(new TimerTask() {
@Override
public void run() {
mp.stop();
}
}, 45000);
}
//turn the flash on
if (messages.contains("Hey Geoff")) {
Camera mCamera = Camera.open();
mCamera.startPreview();
Camera.Parameters params = mCamera.getParameters();
if (params.getFlashMode() != null) {
params.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
}
mCamera.setParameters(params);
}
}
}
}camera.open() (错误:未为Camera类型定义open()方法)、startPrevies() (错误:将cast添加到mCamera)和Camera.Parameters (错误:无法将Camera.Parameters解析为类型)等问题。
此代码片段试图访问android.graphics.Camera而不是android.hardware.Camera是否存在问题?我是一个全新的android用户,所以对我来说这是一个陡峭的学习曲线。
发布于 2013-03-23 21:48:49
需要删除导入android.graphics.Camera -否则不清楚正在使用哪个摄像头。
一直在学习新东西!
https://stackoverflow.com/questions/15587356
复制相似问题