發送短信
自定義發送短信步驟
1、在Manifest.xml裏添加權限
//打電話的權限
<uses-permission android:name="android.permission.CALL_PHONE" />
//發送短信的權限
<uses-permission android:name="android.permission.SEND_SMS"/>
2、獲取控件並添加響應事件
1、先聲明各控件然後再初始化
2、顯示的提醒用戶是否允許Apk使用短信發送的功能
```
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.SEND_SMS}, 1);
```
3、添加響應事件(setOnClickListener)
I、獲取短信管理者
```
SmsManager manager=SmsManager.getDefault();
```
II、拿到短信的內容
```
String text=etSms.getText().toString();
```
III、遍歷list裏面的所有數值
```
List<String>list=manager.divideMessage(text);
//遍歷
for(String sms_text:list){
manager.sendTextMessage(etNum.getText().toString(),null,sms_text,null,null);
}
```
####跳轉到系統短信裏
跳轉到系統打電話裏
源碼在此:
import android.Manifest;
import android.content.Intent;
import android.net.Uri;
import android.support.v4.app.ActivityCompat;
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;
import java.util.List;
public class MainActivity extends AppCompatActivity {
//自定義發送短信步驟
//1、添加權限
//2、獲取控件並添加響應事件
private EditText etNum;
private EditText etSms;
private Button btnSend;
private Button btn;
private Button btnPhone;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//顯示的提醒用入戶是否允許Apk使用短信發送功能
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.SEND_SMS},1 );
etNum = (EditText) findViewById(R.id.main_phoneNum);
etSms = (EditText) findViewById(R.id.main_sms);
btnSend = (Button) findViewById(R.id.main_sendSms);
btn = (Button) findViewById(R.id.btn);
btnPhone= (Button) findViewById(R.id.btnphone);
//添加響應事件
btnSend.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//1、獲取短信管理者
SmsManager manager = SmsManager.getDefault();
//2、發送短信
//注意:如果短信的內容長出70,那麼70以後的字將會被截取掉,所以需要對文本進行處理
//拿到短信的內容
String text = etSms.getText().toString();
//調用短信管理者的方法對短信進行分割
List<String> list = manager.divideMessage(text);
//遍歷list裏面的所有數值
for (String sms_text : list) { //增強for循環
//發送短信
manager.sendTextMessage(etNum.getText().toString(), null, sms_text, null, null);
}
Toast.makeText(MainActivity.this, "消息已發出", Toast.LENGTH_SHORT).show();
}
});
//跳轉到系統短息裏
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(Intent.ACTION_SENDTO, Uri.parse("smsto:"+etNum));
intent.putExtra("sms_body", etSms.getText().toString());
startActivity(intent);
}
});
//跳到系統打電話裏
btnPhone.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent();
intent.setAction(Intent.ACTION_CALL);
Uri data = Uri.parse("tel:" + etNum);
intent.setData(data);
startActivity(intent);
}
});
}
}