国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android實現簡單的撥號器功能

2019-10-22 18:31:38
字體:
來源:轉載
供稿:網友

簡易撥號器的制作方法,具體如下

一、布局構造

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  android:layout_width="match_parent"  android:layout_height="match_parent">  <TextView    android:id="@+id/textView"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:text="請輸入電話號碼:"    android:textSize="30sp"    />  <EditText    android:id="@+id/editText"    android:layout_width="match_parent"    android:layout_height="wrap_content"    android:layout_below="@+id/textView" />  <Button    android:id="@+id/dial"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:layout_below="@+id/editText"    android:text="Dial"    android:layout_alignParentRight="true"    android:layout_marginTop="20dp"    android:textSize="20sp"/></RelativeLayout>

構造出布局如圖

Android,撥號器

二、授予軟件打電話權限

在AndroidManifest.xml添加如下代碼

<uses-permission android:name="android.permission.CALL_PHONE"/>

授予軟件打電話權限,否則打不了電話

三、寫代碼(適用于安卓6.0以下)

1).定義一個外部類去實現setOnClickListener所需要的接口類型

package com.example.kim.phonedial;import android.content.Intent;import android.net.Uri;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;public class MainActivity extends AppCompatActivity {  private EditText et;  @Override  protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    //1.加載布局    setContentView(R.layout.activity_main);    //3.找到控件 editText 和 Button    et=(EditText)findViewById(R.id.editText);    Button btn=(Button)findViewById(R.id.dial);    //3.設置Buuton點擊事件     btn.setOnClickListener(new MyClickListener());  }  //4.定義一個類去實現setOnClickListener所需要的接口類型  private class MyClickListener implements View.OnClickListener{    public void onClick(View v){      //5.獲取 editText的文本內容      String num=et.getText().toString().trim();      if("".equals(num)){        //Lenth_long 在源代碼中的值為1,Length_short在源代碼中的值為0        //所以Length_long可直接寫成1,Length_short可直接寫成0        Toast.makeText(MainActivity.this,"所輸號碼不能為空",Toast.LENGTH_LONG).show();        return;      }      //6.進行撥打電話 意圖Intent      Intent intent=new Intent();//創建一個意圖      //6.1設置動作 打XX      intent.setAction(Intent.ACTION_CALL);//設置打的動作      //6.2設置要撥打的數據  uri類型      // uri統一資源標識符 url統一資源定位符      intent.setData(Uri.parse("tel:"+num));      //6.3開啟意圖      startActivity(intent);    }  }}

2)匿名內部類實現setOnClickListener所需要的接口類型

package com.example.kim.phonedial;import android.content.Intent;import android.net.Uri;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;public class MainActivity extends AppCompatActivity {  private EditText et;  @Override  protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    //1.加載布局    setContentView(R.layout.activity_main);    //3.找到控件 editText 和 Button    et=(EditText)findViewById(R.id.editText);    Button btn=(Button)findViewById(R.id.dial);    //3.設置Buuton點擊事件    // btn.setOnClickListener(new MyClickListener(){});    btn.setOnClickListener(new View.OnClickListener(){      public void onClick(View v){        String num=et.getText().toString().trim();        if(num.equals("")){          Toast.makeText(MainActivity.this,"所輸入號碼不能為空",Toast.LENGTH_LONG).show();        }else{          Intent intent=new Intent();          intent.setAction(Intent.ACTION_CALL);          intent.setData(Uri.parse("tel:"+num));          startActivity(intent);        }      }    });  }}

四、寫代碼(適用于安卓6.0及以上)

在Android6.0及以上平臺,即便已經添加了打電話的權限,運行時依然會報錯安全異常:權限被拒絕。 應該在應用啟動時檢查應用是否被授予電話權限。

package com.example.kim.phonedial;import android.Manifest;import android.content.Intent;import android.content.pm.PackageManager;import android.net.Uri;import android.provider.Settings;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.EditText;import android.widget.Toast;public class MainActivity extends AppCompatActivity {  private EditText et;  @Override  protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    //1.加載布局    setContentView(R.layout.activity_main);    //3.找到控件 editText 和 Button    et = (EditText) findViewById(R.id.editText);    Button btn = (Button) findViewById(R.id.dial);    //3.設置Buuton點擊事件    // btn.setOnClickListener(new MyClickListener(){});    btn.setOnClickListener(new View.OnClickListener() {      public void onClick(View v) {        //檢查是否獲得打電話權限        //如果沒有獲得電話權限        if(ContextCompat.checkSelfPermission(MainActivity.this,            Manifest.permission.CALL_PHONE)!= PackageManager.PERMISSION_GRANTED){              if(ActivityCompat.shouldShowRequestPermissionRationale(MainActivity.this,                  Manifest.permission.CALL_PHONE)){                  //返回值:                  //app請求過該權限,被用戶拒絕,返回true                  //用戶拒絕權限,并勾選了don't ask again,返回false                  //設備策略禁止擁有該權限,返回false                  //提示用戶授權                  Toast.makeText(MainActivity.this,"請授予該應用電話權限",Toast.LENGTH_LONG).show();                  //跳轉到該應用設置界面,幫助用戶授權                  Intent intent=new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);                  Uri uri=Uri.fromParts("package",getPackageName(),null);                  intent.setData(uri);                  startActivity(intent);              }        }else{          CallPhone();        }      }    });  }  private void CheckPermission(){  }  private void CallPhone() {    String num = et.getText().toString().trim();    if (num.equals("")) {      Toast.makeText(MainActivity.this, "所輸入號碼不能為空", Toast.LENGTH_LONG).show();    } else {      Intent intent = new Intent();      intent.setAction(Intent.ACTION_CALL);      intent.setData(Uri.parse("tel:" + num));      startActivity(intent);    }  }}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 五峰| 安庆市| 黄陵县| 二连浩特市| 都兰县| 兴义市| 吉安县| 和顺县| 阳信县| 马龙县| 邯郸市| 常州市| 平塘县| 德庆县| 靖宇县| 松桃| 锦屏县| 台南市| 佛冈县| 天峨县| 右玉县| 项城市| 保山市| 城市| 五大连池市| 巴南区| 临猗县| 望谟县| 横峰县| 秦皇岛市| 东台市| 深水埗区| 湄潭县| 大田县| 平泉县| 金阳县| 华池县| 南宫市| 凤山市| 福贡县| 金阳县|