Marcación de un toque de Android

1. Título

Marcación de un toque de Android

2. Medio ambiente

AndroidStudio

Tres, implementación de código

SharedPreference almacena números de teléfono

Este enlace almacena el número de teléfono de SharedPreference. Se puede utilizar junto con la marcación de un toque.
Si no usa SharedPreference, use el método de lectura correspondiente a la forma en que almacena el número de teléfono para leer el número de teléfono.

package com.example.children;

import android.Manifest;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;

import java.util.ArrayList;
import java.util.List;


public class YiJianBoHuaActivity extends AppCompatActivity {
    
    
    private Button btnPhone1;
    private Button btnPhone2;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    
    
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_yijianbohua);
        btnPhone1 = (Button) findViewById(R.id.btn_call_phone1);
        btnPhone2 = (Button) findViewById(R.id.btn_call_phone2);
        List<String> permissionList = new ArrayList<>();
        if(ContextCompat.checkSelfPermission(YiJianBoHuaActivity.this,Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED){
    
    
            permissionList.add(Manifest.permission.CALL_PHONE);
        }
        if(!permissionList.isEmpty()){
    
    
            String[] permissions = permissionList.toArray(new String[permissionList.size()]);
            ActivityCompat.requestPermissions(YiJianBoHuaActivity.this, permissions, 1);
        }else{
    
    
            Call1();
            Call2();
        }

    }
    public void Call1(){
    
    
        btnPhone1.setOnClickListener(new View.OnClickListener() {
    
    
            @Override
            public void onClick(View v) {
    
    
                SharedPreferences sp = getSharedPreferences("phone_info",MODE_PRIVATE);
                String phone1 = sp.getString("PhoneNumber1","");
                Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:"
                        + phone1));
                if (ActivityCompat.checkSelfPermission(YiJianBoHuaActivity.this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {
    
    
                    return;
                }
                startActivity(intent);

            }
        });
    }

    public void Call2(){
    
    
        btnPhone2.setOnClickListener(new View.OnClickListener() {
    
    
            @Override
            public void onClick(View v) {
    
    
                SharedPreferences sp = getSharedPreferences("phone_info",MODE_PRIVATE);
                String phone2 = sp.getString("PhoneNumber2","");
                Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:"
                        + phone2));
                if (ActivityCompat.checkSelfPermission(YiJianBoHuaActivity.this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {
    
    
                    return;
                }
                startActivity(intent);

            }
        });
    }
    /*只有同意打开相关权限才可以开启本程序*/
    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
    
    
        switch (requestCode) {
    
    
            case 1:
                if (grantResults.length > 0) {
    
    
                    for (int result : grantResults) {
    
    
                        if (result != PackageManager.PERMISSION_GRANTED) {
    
    
                            Toast.makeText(this, "必须同意所有权限才能使用本程序", Toast.LENGTH_SHORT).show();
                            finish();
                            return;
                        }
                    }
                    Call1();
                    Call2();

                } else {
    
    
                    Toast.makeText(this, "发生未知错误", Toast.LENGTH_SHORT).show();
                    finish();
                }
                break;
            default:
        }
    }

}



Cuatro, capturas de pantalla del experimento

1

La interfaz es fea, así que ten paciencia.

Si tiene alguna pregunta, deje un mensaje para intercambiar.

Supongo que te gusta

Origin blog.csdn.net/weixin_43752257/article/details/113044511
Recomendado
Clasificación