2013-03-23 69 views
0

我想创建一个基本的查找我的手机应用程序,我遇到了一些问题。到目前为止,我能够将一个代码字发送到我的手机并让它播放一首歌曲。接下来,我希望能够发短信给不同的关键词,让它在稳定的光线或脉动的情况下开启相机闪光灯。到目前为止,我已经看到了很多示例代码,但我无法弄清楚它为什么不适合我。为了让我的安卓相机闪光灯开启,缺少什么?

我已经包含在我的清单中访问相机和相机闪光灯的权限。 我已经尝试了这个链接的两个例子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)的问题((错误:该方法的open()是未定义的类型相机) 与startPrevies ()(错误:添加投地mCamera) 与Camera.Parameters(错误:Camera.Parameters不能被解析为一个类型) 等等

的是,这个代码段试图访问Android的问题。 graphics.Camera代替android.hardware.Camera?我是全新的android,所以对我来说这是一个陡峭的学习曲线。

回答

1

import android.graphics.Camera需要删除 - 否则不清楚哪台摄像机正在使用。

一直在学习新事物!

+1

import android.hardware.Camera;代替。谢谢。 – 2013-04-20 15:59:24