您好,要往Android 4.4系统中写入短信,可以使用以下代码:
ContentValues values = new ContentValues();
values.put("address", "123456"); // 短信接收者的手机号
values.put("body", "Hello, World!"); // 短信内容
Uri uri = getContentResolver().insert(Uri.parse("content://sms/sent"), values);
注意事项:
- 需要在权限文件中添加写短信的权限;
- 写入短信需要使用ContentProvider,对应的uri为“content://sms/sent”;
- 写入短信需要获取ContentResolver对象。
希望能对您有所帮助。
Android 4.4及以上版本中,短信写入需要获取系统权限。
示例代码如下:
- 首先在AndroidManifest.xml中添加以下权限:
<uses-permission android:name="android.permission.WRITE_SMS"/>
<uses-permission android:name="android.permission.READ_SMS"/>
- 在Activity中请求权限:
private static final int REQUEST_SMS_PERMISSIONS = 1;
private String[] PERMISSIONS_SMS = {Manifest.permission.READ_SMS, Manifest.permission.WRITE_SMS};
if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_SMS) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, PERMISSIONS_SMS, REQUEST_SMS_PERMISSIONS);
}
- 在onRequestPermissionsResult中处理权限结果:
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
switch (requestCode) {
case REQUEST_SMS_PERMISSIONS: {
if (grantResults.length > 0
&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// 已获取权限,进行短信写入
writeSms();
} else {
// 没有获取到权限,需要提示用户
Toast.makeText(this, "没有权限", Toast.LENGTH_LONG).show();
}
return;
}
}
}
// 短信写入操作
private void writeSms(){
ContentValues values = new ContentValues();
// 收件人号码
values.put("address", "10086");
// 短信内容
values.put("body", "测试短信");
// 已发送
values.put("type", 2);
getContentResolver().insert(Uri.parse("content://sms/sent"), values);
}
需要注意的是,以上代码依赖于ContentProvider,如果手机厂商对它进行了修改,可能会出现不兼容的情况。因此,在实际开发中,最好使用短信发送库来完成这个任务,例如第三方库SmsManager。
发布者:luotuoemo,转转请注明出处:https://www.jintuiyun.com/159489.html