Страница 1 из 1

Отправка SMS по нажатию кнопки.

Добавлено: 14 апр 2015, 14:07
YuraGLAB
Здравствуйте, я недавно изучаю android, и решил ради интереса сделать программу отправки SMS: Все что нужно - 2 edittext, и одна кнопка(по нажатию которой происходит отправка на номер указанный в первом edittext, с текстом указанным во втором edittext
Но проблема в том что у меня не отправляются SMS, в Android Manifest я вписал права на отправку и написание сообщений, тут код по сути полной программы: Android manifest - 1, Main Activity -2 и activity_main.xml - 3.
Даже когда была одна кнопка, по нажатию которой исполнялось такое действие:

Код: Выделить всё

  OnClickListener Btns = new OnClickListener() {
       @Override
       public void onClick(View v) {
           SmsManager sms = SmsManager.getDefault();
           sms.sendTextMessage("+380000000000", null, "Тест", null, null);
       }
     };

    }
- ничего не происходило

В чем ошибка - и где можна найти примеры программ по отправке SMS? желательно с возможностью ввода текста(хотя в этом и сам могу разобраться, если по нажатию кнопки отправится SMS-ка)

Вот моя программа:

Android Manifest:

Код: Выделить всё

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="ua.com.glab.smstest" >

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

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

</manifest>
Main Activity:

Код: Выделить всё

public class MainActivity extends ActionBarActivity implements View.OnClickListener {

    Button Btns;
    EditText edtxt;
    EditText number;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        edtxt = (EditText) findViewById(R.id.edtxt);
        number = (EditText) findViewById(R.id.number);
        Btns = (Button) findViewById(R.id.Btns);
        Btns.setOnClickListener(this);

    }

    @Override
    public void onClick(View view) {
        number.setText(number.getText().toString());
        edtxt.setText(edtxt.getText().toString());
        SmsManager sms = SmsManager.getDefault();
        sms.sendTextMessage(number.getText().toString(), null, edtxt.getText().toString(), null, null);


    }
}
activity_main:

Код: Выделить всё

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="+380676711761"
        android:id="@+id/number"/>
    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Текст"
        android:id="@+id/edtxt"/>
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Отправить SMS"
        android:id="@+id/Btns" />
</LinearLayout>

Re: Отправка SMS по нажатию кнопки.

Добавлено: 15 апр 2015, 12:18
Hummer_hard
А как проверял. На первый взгляд все что нужно есть. На телефоне который отправляет смс, данные об отправленной смс не сохраняются (если версия андройда ниже 4.4). Проверять отправку нужно на телефоне чей номер указан (т.е. получил или нет). А лучший вариант включать проверку статуса отправки и доставки.

Re: Отправка SMS по нажатию кнопки.

Добавлено: 15 апр 2015, 17:32
YuraGLAB
С этим всем разобрался... просто мой Samsung Galaxy S4 который до 5.0 обновлен - не хочет отсылать сообщения из программы... На SGS5(Android 4.4.2), HTC One m7(Android 5.0), Huawei Ascend g500(Android 4.0), Lenovo не помню модель - все отправило стабильно.
А теперь вопрос - как выбирать текст из спиннера? (spinner)
Спиннер сделан по уроку http://startandroid.ru/ru/uroki/vse-uro ... pisok.html

Re: Отправка SMS по нажатию кнопки.

Добавлено: 16 апр 2015, 14:55
Hummer_hard
spinner.getSelectedItem()

Учись читать документацию...