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:
- SmsManager sınıfının bir örneğini oluşturun:
java
SmsManager smsManager = SmsManager.getDefault();
- Hedef numarayı ve mesaj metnini ayarlayın:
java
String phoneNumber = "0123456789";
String message = "Merhaba Dünya!";
- 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.