package jml.JmlPhoneCall; /* Pose problème: impossible d'avoir la permission: ne dois pas etre intégrée dans le manifest de AI... */ import android.content.Context; import android.util.Log; import com.google.appinventor.components.annotations.*; import com.google.appinventor.components.runtime.*; import com.google.appinventor.components.common.ComponentCategory; import android.telecom.TelecomManager; import android.Manifest; import android.content.Intent; import android.net.Uri; import androidx.core.app.ActivityCompat; import android.content.pm.PackageManager; import androidx.core.content.ContextCompat; import androidx.annotation.RequiresApi; @DesignerComponent(version = 1, description = "gestion appel telephoniques" + "jm Latour", category = ComponentCategory.EXTENSION, nonVisible = true, iconName = "/icone/music.png") @UsesPermissions(permissionNames = "android.permission.ANSWER_PHONE_CALLS") @SimpleObject(external = true) public class JmlPhoneCall extends AndroidNonvisibleComponent implements Component{ private ComponentContainer container; public Context context; /** * @param container container, component will be placed in */ public JmlPhoneCall(ComponentContainer container) { super(container.$form()); this.container = container; context = container.$context(); } @SimpleFunction(description = "EndCall") //@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) public void EndCall() { TelecomManager tm = (TelecomManager) context.getSystemService(Context.TELECOM_SERVICE); if (ActivityCompat.checkSelfPermission(context,Manifest.permission.ANSWER_PHONE_CALLS) != PackageManager.PERMISSION_GRANTED) { return; } if (tm != null) { boolean success = tm.endCall(); // success == true if call was terminated. Log.d("JML", "Raccroché **" + success); } } @SimpleFunction(description = "AcceptRingingCall") public void AcceptRingingCall() { TelecomManager tm = (TelecomManager) context.getSystemService(Context.TELECOM_SERVICE); if (tm != null) { if (ActivityCompat.checkSelfPermission(context,Manifest.permission.ANSWER_PHONE_CALLS) != PackageManager.PERMISSION_GRANTED) { return; } tm.acceptRingingCall(); Log.d("JML","acceptRingingCall **" ); } } /* public void call(String num){ android.util.Log.d("gestionappeltelephone", "Call ** : " + num); Intent intent = new Intent(Intent.ACTION_CALL); intent.setData(Uri.parse("tel:" + num)); if (ActivityCompat.checkSelfPermission(context, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) { return; } startActivity(intent); } */ }