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

首頁 > 系統 > Android > 正文

Android實現簡單的撥號器功能

2019-12-12 02:24:11
字體:
來源:轉載
供稿:網友

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

一、布局構造

<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>

構造出布局如圖

二、授予軟件打電話權限

在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);    }  }}

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 天台县| 庄河市| 涞源县| 凤凰县| 平泉县| 怀来县| 综艺| 石楼县| 镇巴县| 江油市| 荥阳市| 洪泽县| 二连浩特市| 宁河县| 东平县| 香河县| 黄浦区| 永嘉县| 孝感市| 怀柔区| 图木舒克市| 施秉县| 黄浦区| 曲周县| 桓台县| 海盐县| 张家界市| 澜沧| 武夷山市| 东港市| 无极县| 翁牛特旗| 西乡县| 称多县| 芷江| 定西市| 麻江县| 广灵县| 西乡县| 岚皋县| 正蓝旗|