android中關(guān)于call撥號(hào)功能的實(shí)現(xiàn)方法
前幾天考試居然記錯(cuò)dial和call,故在此寫(xiě)上小demo來(lái)作區(qū)別,加深印象。
主要是實(shí)現(xiàn)call(撥通電話)功能,dial(撥電話)功能用作對(duì)比,話不多說(shuō),貼上代碼。
1.創(chuàng)建布局文件如下:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" > <Button android:id="@+id/btn_dial" android:text="Dial" android:layout_width="match_parent" android:layout_height="wrap_content" /> <Button android:id="@+id/call" android:text="call" android:layout_width="match_parent" android:layout_height="wrap_content" /> </LinearLayout>
也就是添加了兩個(gè)按鈕DIAL和CALL,廢話
2.添加Java代碼:
package com.cnblogs.dialandcall;
import android.Manifest;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.support.annotation.NonNull;
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private Button btn_dial;
private Button btn_call;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn_call = (Button)findViewById(R.id.btn_call);
btn_call.setOnClickListener(this);
btn_dial = (Button)findViewById(R.id.btn_dial);
btn_dial.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.btn_call:
onCall();
break;
case R.id.btn_dial:
Intent dialIntent = new Intent(Intent.ACTION_DIAL);
dialIntent.setData(Uri.parse("tel:10086"));
startActivity(dialIntent);
break;
}
}
private void onCall() {
int permissionCheck = ContextCompat.checkSelfPermission(this, Manifest.permission.CALL_PHONE);
if(permissionCheck!= PackageManager.PERMISSION_GRANTED){
ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.CALL_PHONE}, Integer.parseInt("001"));
}
else{
startActivity(new Intent(Intent.ACTION_CALL).setData(Uri.parse("tel:10086")));
}
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
switch (requestCode){
case 001:
if(grantResults.length>0&&(grantResults[0]==PackageManager.PERMISSION_GRANTED)){
onCall();
}
else {
Toast.makeText(getBaseContext(),"You Need Allow The Permission To Run This App",Toast.LENGTH_SHORT).show();
}
break;
}
}
}
•需要注意的是,我在btn_call按鈕點(diǎn)擊事件中添加了單獨(dú)的方法來(lái)進(jìn)行處理,這是因?yàn)镃ALL_PHONE在Android 6.0及以上版本被認(rèn)為是危險(xiǎn)權(quán)限,需要在程序運(yùn)行時(shí)申請(qǐng)。
•關(guān)于Android中權(quán)限的分類請(qǐng)參考以下鏈接:
https://developer.android.google.cn/guide/topics/security/permissions.html#normal-dangerous
3.添加Manifest.xml文件代碼:
<uses-permission android:name="android.permission.CALL_PHONE" />
千萬(wàn)不要忘記在AndroidManifest.xml中添加上權(quán)限申明哦:)
實(shí)現(xiàn)效果截圖:
截圖1.點(diǎn)擊CALL按鈕彈出提示框

截圖2.點(diǎn)擊確認(rèn)按鈕直接跳轉(zhuǎn)至通話界面

截圖3.點(diǎn)擊DIAL按鈕進(jìn)入撥號(hào)界面
總結(jié)
以上所述是小編給大家介紹的android中關(guān)于call撥號(hào)功能的實(shí)現(xiàn)方法,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)歡迎給我留言,小編會(huì)及時(shí)回復(fù)大家的!
- Android 中 ActivityLifecycleCallbacks的實(shí)例詳解
- Android Call(打電話)的基本知識(shí)詳解
- Android定時(shí)器實(shí)現(xiàn)的幾種方式整理及removeCallbacks失效問(wèn)題解決
- 基于Android CALL && SendMes Test的相關(guān)介紹
- Android Studio Intent隱式啟動(dòng),發(fā)短信,撥號(hào),打電話,訪問(wèn)網(wǎng)頁(yè)等實(shí)例代碼
- Android跳轉(zhuǎn)到系統(tǒng)聯(lián)系人及撥號(hào)或短信界面
- Android開(kāi)發(fā)之電話撥號(hào)器實(shí)例詳解
- Android獲取手機(jī)通訊錄、sim卡聯(lián)系人及調(diào)用撥號(hào)界面方法
- Android 2.3 撥號(hào)上網(wǎng)流程從源碼角度進(jìn)行分析
- android2.3.5 CDMA/EVDO撥號(hào)APN解決方案
- Android撥號(hào)盤(pán) 支持T9搜索和號(hào)碼搜索等撥號(hào)盤(pán)案例
相關(guān)文章
圖文詳解Android Studio搭建Android集成開(kāi)發(fā)環(huán)境的過(guò)程
這篇文章主要以圖文的方式詳細(xì)介紹了Android Studio搭建Android集成開(kāi)發(fā)環(huán)境的過(guò)程,文中安裝步驟介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2015-12-12
Android 10 啟動(dòng)Init進(jìn)程解析
這篇文章主要為大家介紹了Android 10 啟動(dòng)Init進(jìn)程解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10
Android自定義View實(shí)現(xiàn)可以拖拽的GridView
這篇文章主要為大家詳細(xì)介紹了Android自定義View實(shí)現(xiàn)可以拖拽的GridView,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-06-06
Android 簡(jiǎn)單封裝獲取驗(yàn)證碼倒計(jì)時(shí)功能
倒計(jì)時(shí)效果相信大家都不陌生,我們可以使用很多種方法去實(shí)現(xiàn)此效果,這里自己采用 CountDownTimer 定時(shí)器簡(jiǎn)單封裝下此效果,方便我們隨時(shí)調(diào)用。下面小編給大家分享android驗(yàn)證碼倒計(jì)時(shí)封裝方法,感興趣的朋友一起看看吧2018-01-01
解決Android 虛擬按鍵遮住了頁(yè)面內(nèi)容的問(wèn)題
今天小編就為大家分享一篇解決Android 虛擬按鍵遮住了頁(yè)面內(nèi)容的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-07-07
Android抽屜導(dǎo)航Navigation Drawer實(shí)例解析
這篇文章主要為大家詳細(xì)介紹了Android抽屜導(dǎo)航NavigationDrawer實(shí)例,感興趣的小伙伴們可以參考一下2016-05-05
一文帶你了解Android中的網(wǎng)絡(luò)請(qǐng)求
安卓開(kāi)發(fā)網(wǎng)絡(luò)請(qǐng)求可謂是安卓開(kāi)發(fā)的靈魂,如果你不會(huì)網(wǎng)絡(luò)請(qǐng)求,那么你開(kāi)發(fā)的應(yīng)用軟件就是一具沒(méi)有靈魂的枯骨。本文主要為大家介紹的是Android的網(wǎng)絡(luò)請(qǐng)求,感興趣的可以跟隨小編一起學(xué)習(xí)一下2022-11-11
android 點(diǎn)擊EditText始終不彈出軟件鍵盤(pán)實(shí)現(xiàn)代碼
這篇文章主要介紹了android 點(diǎn)擊EditText始終不彈出軟件鍵盤(pán)實(shí)現(xiàn)代碼的相關(guān)資料,需要的朋友可以參考下2016-11-11

