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>
Afficher la suite