Как я могу отправить SMS с помощью sendTextMessage - PullRequest
0 голосов
/ 11 октября 2011

Я делаю простую функцию для отправки SMS.

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

Что не так?Помоги мне!

Ответы [ 3 ]

0 голосов
/ 12 октября 2011

Ну, у меня сработало, так что я думаю, у вас есть ошибка где-то еще.Вот что я попробовал:

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 голосов
/ 12 октября 2011

Ваш код правильный, поэтому проблема должна быть в другом месте. Убедитесь, что у вас есть следующие разрешения в манифесте Android:

<uses-permission android:name="android.permission.SEND_SMS"></uses-permission>
0 голосов
/ 12 октября 2011

Пытаетесь ли вы, чтобы ваше приложение отправляло SMS, или вы пытаетесь открыть приложение SMS по умолчанию для отправки 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);

Это откроет смс по умолчанию со строкой «ваша строка здесь» в теле сообщения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...