Android 7 Kayıtlı Olmyan Numaraya Sms

Android 7’de Kayıtlı Olmayan Numaralara SMS Gönderme

Android 7 ve sonraki sürümlerinde, kayıtlı olmayan numaralara SMS göndermek için özel izinler gerekir. Bu, spam ve dolandırıcılığı azaltmak için tasarlanmış bir güvenlik önlemidir.

İzin Alma

Kayıtlı olmayan numaralara SMS göndermek için aşağıdaki izne ihtiyacınız vardır:

  • SEND_SMS

Bu izni almak için uygulamanızın AndroidManifest.xml dosyasına aşağıdaki satırı eklemeniz gerekir:

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

SMS Gönderme

İzin aldıktan sonra, kayıtlı olmayan numaralara SMS göndermek için aşağıdaki adımları izleyebilirsiniz:

  1. SmsManager sınıfının bir örneğini oluşturun:

java
SmsManager smsManager = SmsManager.getDefault();

  1. Hedef numarayı ve mesaj metnini ayarlayın:

java
String phoneNumber = "0123456789";
String message = "Merhaba Dünya!";

  1. SMS’i gönderin:

java
smsManager.sendTextMessage(phoneNumber, null, message, null, null);

Örnek Kod

İşte kayıtlı olmayan numaralara SMS göndermek için bir örnek kod:

“`java
import android.Manifest;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AppCompatActivity;
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 {

private static final int MY_PERMISSIONS_REQUEST_SEND_SMS = 0;

private EditText phoneNumberEditText;
private EditText messageEditText;
private Button sendButton;

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

    phoneNumberEditText = (EditText) findViewById(R.id.phone_number_edit_text);
    messageEditText = (EditText) findViewById(R.id.message_edit_text);
    sendButton = (Button) findViewById(R.id.send_button);

    sendButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (ContextCompat.checkSelfPermission(MainActivity.this,
                    Manifest.permission.SEND_SMS)
                    != PackageManager.PERMISSION_GRANTED) {
                ActivityCompat.requestPermissions(MainActivity.this,
                        new String[]{Manifest.permission.SEND_SMS},
                        MY_PERMISSIONS_REQUEST_SEND_SMS);
            } else {
                sendSMS();
            }
        }
    });
}

@Override
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
    switch (requestCode) {
        case MY_PERMISSIONS_REQUEST_SEND_SMS: {
            if (grantResults.length > 0
                    && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                sendSMS();
            } else {
                Toast.makeText(MainActivity.this, "SMS gönderme izni reddedildi.", Toast.LENGTH_LONG).show();
            }
        }
    }
}

private void sendSMS() {
    String phoneNumber = phoneNumberEditText.getText().toString();
    String message = messageEditText.getText().toString();

    SmsManager smsManager = SmsManager.getDefault();
    smsManager.sendTextMessage(phoneNumber, null, message, null, null);

    Toast.makeText(MainActivity.this, "SMS gönderildi.", Toast.LENGTH_LONG).show();
}

}
“`

İlgili Kaynaklar

Sonuç

Android 7 ve sonraki sürümlerinde, kayıtlı olmayan numaralara SMS göndermek için özel izinler gerekir. Bu izinleri aldıktan sonra, SMS göndermek için SmsManager sınıfını kullanabilirsiniz. Bu makalede sağlanan bilgiler ve örnek kod, kayıtlı olmayan numaralara SMS göndermenize yardımcı olacaktır.


Yayımlandı