Phone call test

Fermé
Bkoumayma Messages postés 3 Date d'inscription lundi 18 février 2019 Statut Membre Dernière intervention 5 mars 2019 - 5 mars 2019 à 11:18
Bonjour, je suis entrain de développer une application sous android qui me permet de faire un appel téléphonique de durée 2 min et je répète ce processus un nombre de fois que je définie dés le début c'est à dire c'est prés définie .Le problème c'est que j'arrive pas à stopper l'appel c'est à dire j'ai définie au début le numéro que je vais appeler et le nombre de fois que je vais répéter dans un champs d' édit texte disant que j'ai mis il va répéter 2 fois le problème c'est que après 2 répétition il continue à appeler sans arrêt alors que j'ai définie la condition d’arrêt . Voila mon code .Merci de m'aider !
package com.android.internal.telephony;

import android.Manifest;
import android.accessibilityservice.AccessibilityService;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.icu.text.IDNA;
import android.net.Uri;
import android.os.Build;
import android.os.Handler;
import android.support.annotation.RequiresApi;
import android.support.v4.app.ActivityCompat;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.telecom.TelecomManager;
import android.telephony.TelephonyManager;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.Timer;
import java.util.TimerTask;

interface ITelephony {

    boolean endCall();

    void answerRingingCall();

    void silenceRinger();
}

public class MainActivity extends AppCompatActivity {
    EditText editNumber;
    EditText editNumbercalls;
    Handler handler;
    Timer timer;
    TextView text;
    private Context context;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        editNumber = (EditText) findViewById(R.id.Number);
        editNumbercalls = (EditText) findViewById(R.id.Numbercalls);
    }

    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
    public void BtnEmergency_onClick(View view) {
        String number = editNumber.getText().toString();
        final Intent intent = new Intent(Intent.ACTION_CALL);

        intent.setData(Uri.parse("tel:" + number));


        if (ActivityCompat.checkSelfPermission(this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {
            return;
        }

        final Timer timer = new Timer();
        int begin = 0;
        int INTERVAL = 2*1000*60; //2 minutes
        timer.schedule(new TimerTask() {
            int counter = 0;

            @Override
            public void run() {
                //call the method "CallPhone"
                startActivity(intent);

                counter++;
                if (counter >= Integer.valueOf((editNumbercalls.getText()).toString())) {


                    try {

                        TelephonyManager tm = (TelephonyManager)
                                getSystemService(Context.TELEPHONY_SERVICE);
                        try {
                            Class c = Class.forName(tm.getClass().getName());
                            Method m = c.getDeclaredMethod("getITelephony");
                            m.setAccessible(true);
                            com.android.internal.telephony.ITelephony telephonyService=(ITelephony) m.invoke(tm);
                            telephonyService.endCall();

                        } catch (Exception e) {
                            e.printStackTrace();
                        }


                    } catch (Exception e) {

                    }
                }
            }
            }, begin, INTERVAL);


        }

  }







</code>
A voir également: