2014-12-24 2 views
0

Я хочу включить Wi-Fi и GPS при получении SMS-сообщения «on_location». Я делаю следующий код, но приложения прекращаются при получении SMS. Вы можете помочь? Заранее спасибо.Включите Wi-Fi при получении определенного сообщения

public class SmsSaveContact extends BroadcastReceiver { 
//private static final String SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED"; 
//private static final String TAG = "SMSBroadcastReceiver"; 
@Override 
public void onReceive(Context context, Intent intent) { 
    //abortBroadcast(); 
    Bundle myBundle = intent.getExtras(); 
    SmsMessage [] messages = null; 
    String strMessage = ""; 

    if (myBundle != null) 
    { 
     Object [] pdus = (Object[]) myBundle.get("pdus"); 
     messages = new SmsMessage[pdus.length]; 

     for (int i = 0; i < messages.length; i++) 
     { 
      messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]); 
      strMessage += "SMS From: " + messages[i].getOriginatingAddress(); 
      strMessage += " : "; 
      strMessage += messages[i].getMessageBody(); 
      //strMessage += "\n"; 
     } 
     if(strMessage.contains("on_location")){ 
      WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); 
      if(!wifiManager.isWifiEnabled()){ 

        wifiManager.setWifiEnabled(true); 

       }else{ 

        wifiManager.setWifiEnabled(true); 

        }  
     } 
    } 
} 

}

Обновленный Вход Кошка:

12-24 20: 55: 47,846: Вт/dalvikvm (7356): ThreadId = 1: поток, выходящий с неперехваченным исключением (группа = 0x41805c08) 12-24 20: 55: 47.896: E/AndroidRuntime (7356): FATAL EXCEPTION: main 12-24 20: 55: 47.896: E/AndroidRuntime (7356): Процесс: com.example.cameraservice, PID: 7356 12-24 20: 55: 47.896: E/AndroidRuntime (7356): java.lang.RuntimeException: ошибка получения трансляции Intent {a ct = android.provider.Telephony.SMS_RECEIVED flg = 0x8000010 (имеет дополнительные функции)} в [email protected] 12-24 20: 55: 47.896: E/AndroidRuntime (7356): at android.app.LoadedApk $ ReceiverDispatcher $ Args.run (LoadedApk.java:782) 12-24 20: 55: 47.896: E/AndroidRuntime (7356): at android.os.Handler.handleCallback (Handler.java:733) 12-24 20 : 55: 47.896: E/AndroidRuntime (7356): at android.os.Handler.dispatchMessage (Handler.java:95) 12-24 20: 55: 47.896: E/AndroidRuntime (7356): на android.os.Looper .loop (Looper.java:157) 12-24 20: 55: 47.896: E/AndroidRuntime (7356): at android.app.ActivityThread.main (ActivityThread.java:5356) 12-24 20: 55: 47.896 : E/AndroidRuntime (7356): при java.lang.reflect.Method.invokeNative (собственный метод) 12-24 20: 55: 47.896: E/AndroidRuntime (7 356): at java.lang.reflect.Method.invoke (Method.java:515) 12-24 20: 55: 47.896: E/AndroidRuntime (7356): at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller. (ZygoteInit.java:1265) 12-24 20: 55: 47.896: E/AndroidRuntime (7356): at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1081) 12-24 20: 55: 47.896: E/AndroidRuntime (7356): at dalvik.system.NativeStart.main (родной метод) 12-24 20: 55: 47.896: E/AndroidRuntime (7356): вызвано: java.lang.SecurityException: WifiService : Ни у пользователя 10373, ни у текущего процесса нет android.permission.ACCESS_WIFI_STATE. 12-24 20: 55: 47.896: E/AndroidRuntime (7356): at android.os.Parcel.readException (Parcel.java:1465) 12-24 20: 55: 47.896: E/AndroidRuntime (7356): at android.os.Parcel.readException (Parcel.java:1419) 12-24 20: 55: 47.896: E/AndroidRuntime (7356): at android.net.wifi.IWifiManager $ Stub $ Proxy.getWifiEnabledState (IWifiManager.java: 1174) 12-24 20: 55: 47.896: E/AndroidRuntime (7356): at android.net.wifi.WifiManager.getWifiState (WifiManager.java:1279) 12-24 20: 55: 47.896: E/AndroidRuntime (7356): at android.net.wifi.WifiManager.isWifiEnabled (WifiManager.java:1291) 12-24 20: 55: 47.896: E/AndroidRuntime (7356): at com.example.cameraservice.SmsSaveContact.onReceive (SmsSaveContact. java: 37) 12-24 20: 55: 47.896: E/AndroidRuntime (7356): at android.app.LoadedApk $ ReceiverDispatcher $ Args.run (LoadedApk.java:772) 12-24 20: 55: 47,896: Е/AndroidRuntime (7356): ... 9 подробнее

+0

Разместите LogCat для лучшего ответа. –

+0

@JASONGPETERSON Я обновил свой вопрос с помощью логарифма. Спасибо – nestorasg

ответ

1

в журналах LogCat:

Вызванный: Java. lang.SecurityException: WifiService: ни пользователь 10373, ни текущий процесс не имеют android.permission.ACCESS_WIFI_STATE. 12-24 20: 55: 47.896:

добавлено разрешение на получение сообщения и разрешение wifi-state на файл mainfist.xml?

<uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission> 
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission> 
+0

У меня уже есть эти два в моем манифесте. – nestorasg

+0

и ? – mk72

+0

Спасибо, я исправлю это. Это было что-то с получателем в манифесте – nestorasg

0
<receiver android:name=".SmsSaveContact"> 

     <intent-filter android:priority="999"> 

      <action android:name="android.provider.Telephony.SMS_RECEIVED" /> 
     </intent-filter> 
    </receiver> 

...........

<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> 
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
Смежные вопросы