Android_Intent_實(shí)例

實(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)程序,單擊本程序的按鈕即可撥打

  1. 清單文件中,注冊(cè)電話權(quán)限

        <uses-permission android:name="android.permission.CALL_PHONE"/>
    
  2. Activity中權(quán)限的動(dòng)態(tài)監(jiān)測(cè)

    //ContextCompat.checkSelfPermission(Context,permission);
    ContextCompat.checkSelfPermission(this, Manifest.permission.CALL_PHONE)!= PackageManager.PERMISSION_GRANTED
    
  3. 權(quán)限的動(dòng)態(tài)申請(qǐng)

    //ActivityCompat.requestPermissions(Activity,String[] permission, requestCode);
    ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.CALL_PHONE},1);
    
  4. 權(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)短信程序

短信——通過(guò)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ī)短信測(cè)試"));//意圖數(shù)據(jù)=>發(fā)送短信
//另一種寫法
/*
Uri uri = Uri.parse("smsto:12345678910");
Intent intent = new Intent(Intent.ACTION_SETNDTO, uri);
intent.putExtra("sms_body", "手機(jī)短信測(cè)試");*/
startActivity(intent);

方法二

使用短信管理器立即發(fā)送短信(需要申請(qǐng)權(quán)限)

用戶在本程序中輸入短信內(nèi)容、電話號(hào)碼,點(diǎn)擊發(fā)送按鈕就可發(fā)送

  1. 清單文件中,申請(qǐng)權(quán)限

    <uses-permission android:name="android.permission. SEND_SMS“/>
    
    <uses-permission android:name="android.permission. READ_PHONE_STATE"/>
    
  2. Activity組件進(jìn)行權(quán)限的動(dòng)態(tài)監(jiān)測(cè)、動(dòng)態(tài)申請(qǐng)

  3. 權(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.此過(guò)程為異步.
    
      deliveryIntent: 對(duì)方接收狀態(tài)信號(hào)(是否已成功接收).
    */
    
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容