2013-06-12 2 views
0

현재 잘못된 무선 예외 사용 : 잘못된 메시지 본문을 나타내는 오류가 계속 발생하지만 현재 Wi-Fi 사용을 포함하는 문자 메시지를 보내는 서비스를 만들려고합니다.잘못된 인수 예외 : SMS를 보낼 때 유효하지 않은 메시지 본문

제안 사항?

SOURCE :

public class Alarm extends Service { 

    @Override 
    public void onCreate() { 

     // TODO Auto-generated method stub 

    } 

    @Override 
    public IBinder onBind(Intent intent) { 

     // TODO Auto-generated method stub 

     return null; 

    } 

    @Override 
    public void onStart(Intent intent, int startId) { 

     // TODO Auto-generated method stub 

     super.onStart(intent, startId); 


     String info = ""; 
     String sms = info; 

     info += "Monthly Wifi Data Usage Amount:\t"; 
     info += ("\tReceived: " + TrafficStats.getTotalRxBytes() + " bytes/" 
       + TrafficStats.getTotalRxPackets() + " packets\n"); 
     info += ("\tTransmitted: " + TrafficStats.getTotalTxBytes() 
       + " bytes/" + TrafficStats.getTotalTxPackets() + " packets\n"); 

     SmsManager smsManager = SmsManager.getDefault(); 
     smsManager.sendTextMessage("9545555555", null, sms, null, null);  

    } 

    @Override 
    public boolean onUnbind(Intent intent) { 

     // TODO Auto-generated method stub 

     return super.onUnbind(intent); 

    } 

} 

로그 캣 :

@Override 
    public void onCreate() { 

     // TODO Auto-generated method stub 

    } 

    @Override 
    public IBinder onBind(Intent intent) { 

     // TODO Auto-generated method stub 

     return null; 

    } 

    @Override 
    public void onStart(Intent intent, int startId) { 

     // TODO Auto-generated method stub 

     super.onStart(intent, startId); 

     String phoneNumber = "9545555555"; 
     String sms = ""; 
    // String sms = info; 

     sms += "Monthly Wifi Data Usage Amount:\t"; 
     sms += ("\tReceived: " + TrafficStats.getTotalRxBytes() + " bytes/" 
       + TrafficStats.getTotalRxPackets() + " packets\n"); 
     sms += ("\tTransmitted: " + TrafficStats.getTotalTxBytes() 
       + " bytes/" + TrafficStats.getTotalTxPackets() + " packets\n"); 

     SmsManager smsManager = SmsManager.getDefault(); 
     smsManager.sendTextMessage("9545555555", null, sms, null, null); 

    } 

    @Override 
    public boolean onUnbind(Intent intent) { 

     // TODO Auto-generated method stub 

     return super.onUnbind(intent); 

    } 

} 

UPDATED 로그 캣 (FIRST RESPONSE AFTER)

06-12 16:32:49.645: E/AndroidRuntime(31197): FATAL EXCEPTION: main 
06-12 16:32:49.645: E/AndroidRuntime(31197): java.lang.RuntimeException: Unable to start service [email protected] with Intent { flg=0x4 cmp=com.example.wifimonitor/.Alarm (has extras) }: java.lang.NullPointerException 
06-12 16:32:49.645: E/AndroidRuntime(31197): at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2549) 
06-12 16:32:49.645: E/AndroidRuntime(31197): at android.app.ActivityThread.access$2000(ActivityThread.java:139) 
06-12 16:32:49.645: E/AndroidRuntime(31197): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1321) 
06-12 16:32:49.645: E/AndroidRuntime(31197): at android.os.Handler.dispatchMessage(Handler.java:99) 
06-12 16:32:49.645: E/AndroidRuntime(31197): at android.os.Looper.loop(Looper.java:137) 
06-12 16:32:49.645: E/AndroidRuntime(31197): at android.app.ActivityThread.main(ActivityThread.java:4918) 
06-12 16:32:49.645: E/AndroidRuntime(31197): at java.lang.reflect.Method.invokeNative(Native Method) 
06-12 16:32:49.645: E/AndroidRuntime(31197): at java.lang.reflect.Method.invoke(Method.java:511) 
06-12 16:32:49.645: E/AndroidRuntime(31197): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1004) 
06-12 16:32:49.645: E/AndroidRuntime(31197): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:771) 
06-12 16:32:49.645: E/AndroidRuntime(31197): at dalvik.system.NativeStart.main(Native Method) 
06-12 16:32:49.645: E/AndroidRuntime(31197): Caused by: java.lang.NullPointerException 
06-12 16:32:49.645: E/AndroidRuntime(31197): at android.os.Parcel.readException(Parcel.java:1431) 
06-12 16:32:49.645: E/AndroidRuntime(31197): at android.os.Parcel.readException(Parcel.java:1379) 
06-12 16:32:49.645: E/AndroidRuntime(31197): at com.android.internal.telephony.ISms$Stub$Proxy.sendText(ISms.java:714) 
06-12 16:32:49.645: E/AndroidRuntime(31197): at android.telephony.SmsManager.sendTextMessage(SmsManager.java:203) 
06-12 16:32:49.645: E/AndroidRuntime(31197): at com.example.wifimonitor.Alarm.onStart(Alarm.java:44) 
06-12 16:32:49.645: E/AndroidRuntime(31197): at android.app.Service.onStartCommand(Service.java:450) 
06-12 16:32:49.645: E/AndroidRuntime(31197): at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2532) 
06-12 16:32:49.645: E/AndroidRuntime(31197): ... 10 more 
,691 :

06-12 15:53:42.395: E/AndroidRuntime(29664): FATAL EXCEPTION: main 
06-12 15:53:42.395: E/AndroidRuntime(29664): java.lang.RuntimeException: Unable to start service [email protected] with Intent { flg=0x4 cmp=com.example.wifimonitor/.Alarm (has extras) }: java.lang.IllegalArgumentException: Invalid message body 
06-12 15:53:42.395: E/AndroidRuntime(29664): at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2549) 
06-12 15:53:42.395: E/AndroidRuntime(29664): at android.app.ActivityThread.access$2000(ActivityThread.java:139) 
06-12 15:53:42.395: E/AndroidRuntime(29664): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1321) 
06-12 15:53:42.395: E/AndroidRuntime(29664): at android.os.Handler.dispatchMessage(Handler.java:99) 
06-12 15:53:42.395: E/AndroidRuntime(29664): at android.os.Looper.loop(Looper.java:137) 
06-12 15:53:42.395: E/AndroidRuntime(29664): at android.app.ActivityThread.main(ActivityThread.java:4918) 
06-12 15:53:42.395: E/AndroidRuntime(29664): at java.lang.reflect.Method.invokeNative(Native Method) 
06-12 15:53:42.395: E/AndroidRuntime(29664): at java.lang.reflect.Method.invoke(Method.java:511) 
06-12 15:53:42.395: E/AndroidRuntime(29664): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1004) 
06-12 15:53:42.395: E/AndroidRuntime(29664): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:771) 
06-12 15:53:42.395: E/AndroidRuntime(29664): at dalvik.system.NativeStart.main(Native Method) 
06-12 15:53:42.395: E/AndroidRuntime(29664): Caused by: java.lang.IllegalArgumentException: Invalid message body 
06-12 15:53:42.395: E/AndroidRuntime(29664): at android.telephony.SmsManager.sendTextMessage(SmsManager.java:119) 
06-12 15:53:42.395: E/AndroidRuntime(29664): at com.example.wifimonitor.Alarm.onStart(Alarm.java:59) 
06-12 15:53:42.395: E/AndroidRuntime(29664): at android.app.Service.onStartCommand(Service.java:450) 
06-12 15:53:42.395: E/AndroidRuntime(29664): at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2532) 
06-12 15:53:42.395: E/AndroidRuntime(29664): ... 10 more 

EDIT FIRST RESPONSE AFTER

답변

3

빈 메시지로 인해 오류가 발생했습니다.

여기입니다

String info = ""; 
    String sms = info; 
아래 코드 뒤에

상기 infosms는 동일하다. 이 작업을 수행 한 후 그러나 :

info += "Monthly Wifi Data Usage Amount:\t"; 

새로운 문자열 생성 info에 할당을, 그래서 infosms 더 이상 동일하지 않습니다. sms은 여전히 ​​비어 있으며 IllegalArgumentException을 얻은 이유가 있습니다.

코드에서 info을 제거하고 sms 변수 만 사용하면됩니다. StringBuilder

+0

제안 된 방법 (위의 업데이트 된 소스 코드 추가)을 시도했지만 지금 널 포인터 예외로 끝납니다 (도움 주셔서 감사합니다!) –

+0

@ user2478682 아마도 sms 메시지 일 겁니다. 너무 큽니다. 더 작은 것으로 사용해보십시오. – andrew

+0

그게 다야! 감사합니다!! –

관련 문제