自定义发送短信,打电话
2016-07-15 20:33
134 查看
1.自定义发送短信
发送短信,需要一个权限,就是android.permission.SEND_SMS.
所以,首先在AndroidMenifest文件里加上这个权限:
uses-permission android:name=”android.permission.SEND_SMS”
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
显示的提醒用户是否允许apk使用短信发送功能
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.SEND_SMS}, -1);
phoneNumber = (EditText) findViewById(R.id.phone_number);
smsText = (EditText) findViewById(R.id.sms_text);
sendButton = (Button) findViewById(R.id.send_sms);
systemBtn = (Button) findViewById(R.id.main_system);
systemBtnCall = (Button) findViewById(R.id.main_systemCall);
添加点击事件
sendButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
1.1.获取短信管理者
SmsManager manager = SmsManager.getDefault();
1.2.发送短信
注意如果短信的内容长度长过70,那么70以后的文本会被截取掉,所以需要对文本进行处理
拨打电话的话,需要一个权限,就是android.permission.CALL_PHONE.
所以,首先在AndroidMenifest文件里加上这个权限:
uses-permission android:name=”android.permission.CALL_PHONE”
第一种方式:
Intent intent = new Intent(Intent.ACTION_DIAL);
Uri data = Uri.parse(“tel:” + “135xxxxxxxx”);
intent.setData(data);
startActivity(intent);
这种方式的特点就是,去到了拨号界面,但是实际的拨号是由用户点击实现的。
第二种方式:
Intent intent = new Intent();
intent.setAction(“android.intent.action.CALL”);
intent.setData(Uri.parse(“tel:”+phoneNumber.getText().toString()));
startActivity(intent);
这种方式的特点就是,直接拨打了你所输入的号码,所以这种方式对于用户没有直接的提示效果,Android
推荐使用第一种方式,如果是第二种的话,建议在之前加一个提示,是否拨打号码,然后确定后再拨打。
发送短信,需要一个权限,就是android.permission.SEND_SMS.
所以,首先在AndroidMenifest文件里加上这个权限:
uses-permission android:name=”android.permission.SEND_SMS”
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
显示的提醒用户是否允许apk使用短信发送功能
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.SEND_SMS}, -1);
phoneNumber = (EditText) findViewById(R.id.phone_number);
smsText = (EditText) findViewById(R.id.sms_text);
sendButton = (Button) findViewById(R.id.send_sms);
systemBtn = (Button) findViewById(R.id.main_system);
systemBtnCall = (Button) findViewById(R.id.main_systemCall);
添加点击事件
sendButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
1.1.获取短信管理者
SmsManager manager = SmsManager.getDefault();
1.2.发送短信
注意如果短信的内容长度长过70,那么70以后的文本会被截取掉,所以需要对文本进行处理
拿到短信的内容 String text = smsText.getText().toString(); 调用短信管理者的方法对短信进行分割 List<String> list = manager.divideMessage(text); 遍历List里面的 for (String sms_text:list){ 发送短信 **发送短信的参数说明:** destinationAddress:目标电话号码 scAddress:短信中心号码,测试可以不填 text: 短信内容 sentIntent:发送 -->中国移动 --> 中国移动发送失败 --> 返回发送成功或失败信号 --> 后续处理 即,这个意图包装了短信发送状态的信息 deliveryIntent: 发送 -->中国移动 --> 中国移动发送成功 --> 返回对方是否收 已经发送成功,但是对方没有收到)。 manager.sendTextMessage(phoneNumber.getText().toString(), null, smsText.getText().toString(), null, null); } Toast.makeText(MainActivity.this, "发送成功",LENGTH_SHORT).show(); } }); 调用系统发短息 systemBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Uri smsToUri = Uri.parse("smsto:10000"); Intent intent = new Intent(Intent.ACTION_SENDTO, smsToUri); intent.putExtra("sms_body", smsText.getText().toString()); startActivity(intent); } });
拨打电话的话,需要一个权限,就是android.permission.CALL_PHONE.
所以,首先在AndroidMenifest文件里加上这个权限:
uses-permission android:name=”android.permission.CALL_PHONE”
第一种方式:
Intent intent = new Intent(Intent.ACTION_DIAL);
Uri data = Uri.parse(“tel:” + “135xxxxxxxx”);
intent.setData(data);
startActivity(intent);
这种方式的特点就是,去到了拨号界面,但是实际的拨号是由用户点击实现的。
第二种方式:
Intent intent = new Intent();
intent.setAction(“android.intent.action.CALL”);
intent.setData(Uri.parse(“tel:”+phoneNumber.getText().toString()));
startActivity(intent);
这种方式的特点就是,直接拨打了你所输入的号码,所以这种方式对于用户没有直接的提示效果,Android
推荐使用第一种方式,如果是第二种的话,建议在之前加一个提示,是否拨打号码,然后确定后再拨打。
相关文章推荐
- JavaScript隐式类型转换趣解
- mongodb安装与使用
- svn服务用svnsync命令双机热备
- 华为OJ——表达式求值
- JavaScript运行机制浅析
- 【DEV GridControl】怎样使GridView中满足某个条件的行可编辑,其余行不可编辑?
- css3实现梯形三角
- 华为OJ——iNOC产品部-杨辉三角的变形
- Image Generation
- excel的导入导出
- 指针以及指向指针的指针
- JavaScript API 设计原则
- 简单c/s程序(Linux c)
- jzoj 1577. 【普及模拟】抓猫 解题报告
- 暑期集训-dp(1)
- UVA 101 The Blocks Problem
- 零子数组
- LinkedList源码解析
- 为什么说JavaScript中的DOM操作很慢
- Web安全之:WebShell的获取与查杀