2011-10-11 79 views
0

我使發送短信的功能變得簡單。如何使用sendTextMessage發送短信

public void send(String address, String packet){//address="13614951242" packet="a" 
    SmsManager sm = SmsManager.getDefault(); 
    sm.sendTextMessage(address, null, packet, null, null); 
} 

但是,有NullPointException錯誤。

10-12 03:20:05.463: ERROR/AndroidRuntime(9662): Caused by: java.lang.NullPointerException 
10-12 03:20:05.463: ERROR/AndroidRuntime(9662):  at android.os.Parcel.readException(Parcel.java:1253) 
10-12 03:20:05.463: ERROR/AndroidRuntime(9662):  at android.os.Parcel.readException(Parcel.java:1235) 
10-12 03:20:05.463: ERROR/AndroidRuntime(9662):  at com.android.internal.telephony.ISms$Stub$Proxy.sendText(ISms.java:561) 
10-12 03:20:05.463: ERROR/AndroidRuntime(9662):  at android.telephony.SmsManager.sendTextMessage(SmsManager.java:109) 
10-12 03:20:05.463: ERROR/AndroidRuntime(9662):  at ric.FPSProject.SinglePos.SinglePosMap.initPersonData(SinglePosMap.java:260) 
10-12 03:20:05.463: ERROR/AndroidRuntime(9662):  at ric.FPSProject.SinglePos.SinglePosMap.onResume(SinglePosMap.java:160) 
10-12 03:20:05.463: ERROR/AndroidRuntime(9662):  at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1151) 
10-12 03:20:05.463: ERROR/AndroidRuntime(9662):  at android.app.Activity.performResume(Activity.java:3823) 
10-12 03:20:05.463: ERROR/AndroidRuntime(9662):  at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3123) 
10-12 03:20:05.463: ERROR/AndroidRuntime(9662):  ... 12 more 

怎麼了?幫我!

+0

您能否給我們提供一些更多信息?有關此錯誤的logcat輸出中是否還有其他內容? –

+0

這是在手機上運行SMS功能,正確嗎? – MrZander

+0

檢查此鏈接:http://stackoverflow.com/questions/7832864/sendtextmessage-in-android-phone – Pradeep

回答

0

您是否試圖讓您的應用程序發送短信或者您是否嘗試打開默認的SMS應用程序來發送短信?如果你正在嘗試做了以後,所有你需要做的是:

Intent i = new Intent(Intent.ACTION_SENDTO, Uri.parse("sms:")); 
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
i.putExtra("sms_body", "your string here"); 
startActivity(i); 

這將打開默認的短信與郵件正文中的「您的字符串這裏」字符串。

0

那麼,爲我工作,所以我想你有一個錯誤的地方。這是我試過的:

import android.app.Activity; 
import android.os.Bundle; 
import android.telephony.SmsManager; 
import android.view.View; 
import android.widget.Button; 

public class Playground extends Activity { 
    Button button; 

    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     button = (Button) findViewById(R.id.button); 
     button.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       send("13614951242", "a"); 
      } 
     }); 
    } 

    private void send(String number, String message) { 
     SmsManager sm = SmsManager.getDefault(); 
     sm.sendTextMessage(number, null, message, null, null); 
    } 
} 
0

你的代碼是正確的,所以在其他地方一定有問題。請確保您在Android清單中擁有以下權限:

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

我已設置<使用權限> SEND_SMS。 –