android M 权限 使用套路(以拨打电话为例)
来源:互联网 发布:数据库输入数据语句 编辑:程序博客网 时间:2024/05/28 06:07
下面是拨打电话的代码实现
package com.glandroid.phone;import android.Manifest;import android.content.Intent;import android.content.pm.PackageManager;import android.net.Uri;import android.os.Bundle;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.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;public class MainActivity extends AppCompatActivity { private static final int MY_PERMISSIONS_REQUEST_CALL_PHONE = 1; private EditText mBt_phone; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 加载布局 setContentView(R.layout.activity_main); // 1.寻找关心的控件 mBt_phone = (EditText) findViewById(R.id.et_phone); Button bt_dail = (Button) findViewById(R.id.bt_dail); bt_dail.setOnClickListener(new MyButtonListener()); } public void callPhone() { // 2.当用户点击按钮的时候获取里面的电话号码 String phone = mBt_phone.getText().toString().trim(); if ("".equals(phone)) { Toast.makeText(MainActivity.this,"电话号码不能为空", Toast.LENGTH_SHORT).show(); } else { // 1.创建一个意图对象 Intent intent = new Intent(); // 2.设置动作 intent.setAction(Intent.ACTION_CALL); // 3.指定动作的数据 intent.setData(Uri.parse("tel://" + phone)); // 4.开启一个界面,根据程序员指定的行为来做事情 startActivity(intent); } } private class MyButtonListener implements View.OnClickListener { @Override public void onClick(View v) { if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.CALL_PHONE}, MY_PERMISSIONS_REQUEST_CALL_PHONE); } else { callPhone(); } } } @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { if (requestCode == MY_PERMISSIONS_REQUEST_CALL_PHONE) { if (grantResults[0] == PackageManager.PERMISSION_GRANTED) { callPhone(); } else { // Permission Denied Toast.makeText(MainActivity.this,"Permission Denied", Toast.LENGTH_SHORT).show(); } } super.onRequestPermissionsResult(requestCode, permissions, grantResults); }}
这下面是权限使用时注意的套路:
private class MyButtonListener implements View.OnClickListener {
@Override
public void onClick(View v) {
if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED)
{
ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.CALL_PHONE}, MY_PERMISSIONS_REQUEST_CALL_PHONE);
} else {
callPhone();
}
}
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
if (requestCode == MY_PERMISSIONS_REQUEST_CALL_PHONE) {
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
callPhone();
} else {
// Permission Denied
Toast.makeText(MainActivity.this,"Permission Denied", Toast.LENGTH_SHORT).show();
}
}
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
}
- android M 权限 使用套路(以拨打电话为例)
- android拨打电话权限
- android调用拨打电话(包括运行时权限)
- 使用Android拨打电话功能
- 使用Android拨打电话功能
- 使用Android模拟器拨打电话
- Android 6.0 获取拨打电话的权限
- Android(开发):拨打电话
- Android电话拨打权限绕过漏洞(CVE-2013-6272)分析
- android拨打电话崩溃6.0以上实时动态权限申请
- 动态检查拨打电话权限
- Android开发(一)拨打电话程序
- Android开发(一)拨打电话程序
- Android开发(一)拨打电话程序
- Android开发(一)拨打电话程序
- Android拨打电话(Intent.ACTION.CALL)
- android N 拨打电话流程(MO)
- android N 拨打电话流程(MO)
- 多校联萌(三)QAQ & ORZ 的签到题
- MOOC清华《程序设计基础》期末考试第6题:鸡兔同笼问题
- java面试题 字符串截取
- codeforces 446C C. DZY Loves Fibonacci Numbers(线段树+菲波那契数的性质)
- 面向对象
- android M 权限 使用套路(以拨打电话为例)
- 8大经典排序算法
- clearfix
- Spring Boot 与 Spring Security 持续集成
- [leetcode] 22. Generate Parentheses
- 本地搭建dubbo+zookeeper环境
- Convert Sorted List to Binary Search Tree问题及解法
- try catch与throw
- HDU3692--least common multiple(数论优化+分组背包);DP--数论