Я довольно новичок в разработке приложений для Android, и я пытаюсь сделать приложение таким образом, чтобы вы вводили текстовое поле, номер получателя в одном тексте поле и сообщение в другом, а затем нажмите кнопку для отправки, не переходя в приложение обмена сообщениями по умолчанию. Я провел некоторое исследование, но не так много их решений работало. Если вы придумаете решение, можете ли вы добавить краткий аргумент в пользу того, почему он работает. Кроме того, я не слишком уверен, если я правильно добавил разрешения Send_SMS и Receive_SMS правильно:Отправить текстовое сообщение без перенаправления на приложение для обмена сообщениями по умолчанию (Android Studio)
MainActivity.java
import android.app.PendingIntent;
import android.content.Intent;
import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.telephony.SmsManager;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
EditText no,msg;
Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
no = (EditText)findViewById(R.id.phone);
msg = (EditText)findViewById(R.id.message);
button = (Button)findViewById(R.id.buttonsms);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String noString = no.getText().toString();
String msgMsg = msg.getText().toString();
sendSms(noString, msgMsg);
}
});
}
private void sendSms(String phoneNumber, String message) {
PendingIntent pi = PendingIntent.getActivity(this, 0, new Intent(this, MainActivity.class), 0);
SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage(phoneNumber, null, message, pi, null);
}
}
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.skiddswarmik.messageproto">
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="19"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<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>
<uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission>
Пожалуйста, объясните, что именно ваши проблемы с существующим кодом. – CommonsWare
Проблема заключается в том, что он отправляется в приложение «Сообщения», а не просто отправляет его прямо из самого приложения. – Skiddswarmik
Я не вижу, как это возможно в этом коде. 'sendTextMessage()' должен отправлять текстовое сообщение напрямую. Если вы еще этого не сделали, попробуйте протестировать это на эмуляторе Android. – CommonsWare