我想在收到短信「on_location」時啓用Wi-Fi和GPS。我製作下面的代碼,但應用程序在收到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:W/dalvikvm(7356):線程ID = 1:螺紋與未捕獲的異常退出(組= 0x41805c08) 12-24 20:55:47.896:E/AndroidRuntime(7356):致命例外: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:接收廣播意圖時出錯{a ct = android.provider.Telephony.SMS_RECEIVED flg = 0x8000010(has extras)} in [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):在android.os.Handler.dispatchMessage(Handler.java:95) 12-24 20:55:47.896:E/AndroidRuntime(7356):at 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):at java.lang.reflect.Method.invokeNative(Native Method) 12-24 20:55:47.896:E/AndroidRuntime(7 356):在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):在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):在android.app.LoadedApk $ ReceiverDispatcher $ Args.run (LoadedApk.java:772) 12-24 20:55:47.896:E/AndroidRuntime(7356):... 9更
安置自己的logcat的一個更好的響應。 –
@JASONGPETERSON我用logcat更新了我的問題。謝謝 – nestorasg