Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Android automatické volání

Programování pro android je zdlouhavé a nebezpečné. :x:
Neodkazuješ se na službu.
Odzkoušený kód comrade.
Telefon se sám probudí (pokud je to třeba) :

Nejdřív uděláš odvozenou třídu od BroadcastReceiver (v samostatném souboru MyBroadcastReceiver.java přídáš do projektu )


public class MyBroadcastReceiver extends BroadcastReceiver {
  

    @Override
    public void onReceive(Context context, Intent intent) {

        PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
        PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "myapp:app_name");
        wl.acquire();
        
        Intent callIntent = new Intent(Intent.ACTION_CALL);
        callIntent.setData(Uri.parse("tel:577019465"));

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

       wl.release();
    }



}

Následně například po kliknutí na tlačítko v MainActivity vykonáš tenhle kód:

  
Intent intent = new Intent(this, MyBroadcastReceiver.class);  // Tady se odkazujeme na službu "MyBroadcastReceiver"
intent.setClass(this, MyBroadcastReceiver.class);

 AlarmManager alarmMgr = (AlarmManager)this.getSystemService(Context.ALARM_SERVICE);

        int millis = 1;  // za jaký čas v minutách volat
        PendingIntent pendingIntent =  PendingIntent.getBroadcast(this, 0, intent,
                        PendingIntent.FLAG_UPDATE_CURRENT);
        Calendar time = Calendar.getInstance();
        time.setTimeInMillis(System.currentTimeMillis());
        time.add(Calendar.MINUTE, mills);
        alarmMgr.set(AlarmManager.RTC_WAKEUP, time.getTimeInMillis(), pendingIntent);


        Toast.makeText(this, "Volání proběhne za: " + mills + " minut" , Toast.LENGTH_LONG).show();

Vloženy mám tyto manifesty:

<uses-permission android:name="android.permission.PARTIAL_WAKE_LOCK" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.CALL_PHONE" />

Reakce na odpověď

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny