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
La interfaz es fea, así que ten paciencia.
Si tiene alguna pregunta, deje un mensaje para intercambiar.