實(shí)現(xiàn)電話程序
方法一
使用系統(tǒng)自帶的撥號(hào)程序撥打電話(不需要任何權(quán)限)
Intent intent = new Intent();
intent.setAction(Intent.ACTION_DIAL); //撥號(hào)
intent.setData(Uri.parse("tel:12345678910")); //意圖數(shù)據(jù)
/*
//顯示用戶數(shù)據(jù)的通用方式,根據(jù)用戶的數(shù)據(jù)類型打開相應(yīng)的Activity
intent.setAction(Intent.ACTION_VIEW);
intent.setData(Uri.parse("tel:12345678910"));*/
startActivity(intent);
方法二
立即撥打指定電話(需要申請(qǐng)撥號(hào)權(quán)限)
不調(diào)用系統(tǒng)程序,單擊本程序的按鈕即可撥打
-
清單文件中懦傍,注冊(cè)電話權(quán)限
<uses-permission android:name="android.permission.CALL_PHONE"/>
-
Activity中權(quán)限的動(dòng)態(tài)監(jiān)測
//ContextCompat.checkSelfPermission(Context伺通,permission); ContextCompat.checkSelfPermission(this, Manifest.permission.CALL_PHONE)!= PackageManager.PERMISSION_GRANTED
-
權(quán)限的動(dòng)態(tài)申請(qǐng)
//ActivityCompat.requestPermissions(Activity,String[] permission, requestCode); ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.CALL_PHONE},1);
-
權(quán)限已有灌侣,意圖Intent
private void dail(){ Intent intent=new Intent(); intent.setAction(Intent.ACTION_CALL); intent.setData(Uri.parse("tel:"+numberText.getText())); startActivity(intent); }
實(shí)現(xiàn)短信程序
短信——通過SMS中心進(jìn)行轉(zhuǎn)發(fā)
- SMS (Short Message Service治专,短信息服務(wù)) 是一種存儲(chǔ)和轉(zhuǎn)發(fā)服務(wù)
- 短信管理器類android.telephony.SmsManager
方法一
使用系統(tǒng)自帶的短信程序(不需要任何權(quán)限)
Intent intent = new Intent();
intent.setAction(Intent.ACTION_SENDTO);//意圖動(dòng)作
//intent.setAction(Intent.ACTION_VIEW);
intent.setDdata(Uri.parse("sms:12345678910?body=手機(jī)短信測試"));//意圖數(shù)據(jù)=>發(fā)送短信
//另一種寫法
/*
Uri uri = Uri.parse("smsto:12345678910");
Intent intent = new Intent(Intent.ACTION_SETNDTO, uri);
intent.putExtra("sms_body", "手機(jī)短信測試");*/
startActivity(intent);
方法二
使用短信管理器立即發(fā)送短信(需要申請(qǐng)權(quán)限)
用戶在本程序中輸入短信內(nèi)容卖陵、電話號(hào)碼,點(diǎn)擊發(fā)送按鈕就可發(fā)送
-
清單文件中张峰,申請(qǐng)權(quán)限
<uses-permission android:name="android.permission. SEND_SMS“/> <uses-permission android:name="android.permission. READ_PHONE_STATE"/>
Activity組件進(jìn)行權(quán)限的動(dòng)態(tài)監(jiān)測泪蔫、動(dòng)態(tài)申請(qǐng)
-
權(quán)限申請(qǐng)成功
public void onClick(View v) { EditText tel = findViewById(R.id.tel); EditText message = findViewById(R.id.message); //獲得短信管理器 SmsManager smsManager = SmsManager.getDefault(); //短信內(nèi)容分段 List<String> list = smsManager.divideMessage(message.toString()); //分段發(fā)送 for(String sms : list) { //方法參數(shù)1為手機(jī)號(hào),參數(shù)3為短信內(nèi)容喘批,共5個(gè)參數(shù) smsManager.sendTextMessage(tel.toString, null, sms, null, null); } } /* smsManager.sendTextMessage(destinationAddress, scAddress, text, sentIntent, deliveryIntent) destinationAddress: 收件人號(hào)碼 scAddress: 短信中心服務(wù)號(hào)碼, 這里設(shè)置為null text: 發(fā)送內(nèi)容 sentIntent: 發(fā)送短信結(jié)果狀態(tài)信號(hào)(是否成功發(fā)送),new 一個(gè)Intent , 操作系統(tǒng)接收到信號(hào)后將廣播這個(gè)Intent.此過程為異步. deliveryIntent: 對(duì)方接收狀態(tài)信號(hào)(是否已成功接收). */