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

Vyskytla se mi potřeba někam zavolat -prozvonit v určitém čase třeba v nějakém nočním úseku na určité číslo , na googlu play je taková aplikace ale u ní nevím jestli neposkytuje třeba to číslo třetí straně -autorovi . Kdyby někdy věděl o nějakém video návodu na YouTube podle něho bych to mohl přepsat díky

Předmět Autor Datum
Ahoj. 1) Naplánuješ pomocí tzv. Alarmu/scheduleru ve službě (service) čas, kdy se má služba aktivov…
Flash_Gordon 23.02.2019 21:35
Flash_Gordon
Tak já to mám takto postupoval jsem podle tvého návodu toto by se mělo probouzet každých 30 minut…
Víťa 24.02.2019 17:22
Víťa
Programování pro android je zdlouhavé a nebezpečné. :x: Neodkazuješ se na službu. Odzkoušený kód com…
Flash_Gordon 24.02.2019 19:34
Flash_Gordon
Já nevím "která bije" :-[ mě dělá problém ty class já jsem vychovaný na delphi prosím tě můžeš mi to…
Víťa 25.02.2019 11:56
Víťa
Tutaj máš project ze kterého můžeš vycházet: Obrázek LINK V souboru MainActivity.java je tlačítko…
Flash_Gordon 25.02.2019 15:28
Flash_Gordon
Jak to vyzkoušet ve emulátoru ?já jsem upravil ten můj projekt podle tvého sice to nepadá ale taky s…
Víťa 01.03.2019 12:49
Víťa
Musím se přiznat, jsem z tebe poněkud neradostný. Reakční doba řádově ve dnech, chybové hlášky sem n…
Flash_Gordon 01.03.2019 14:20
Flash_Gordon
Já to řeknu na rovinu já se chci vyhnout inportaci, to by bylo nejlepší
Víťa 01.03.2019 14:39
Víťa
Přidej si tam referenci na MyBroadcastReceiver do manifestu.
Flash_Gordon 01.03.2019 14:41
Flash_Gordon
To pochopitelně mám právě je to červeně potrhnuto
Víťa 01.03.2019 14:47
Víťa
Tak ti tam chybí ta třída no..... no comment.
Flash_Gordon 01.03.2019 18:43
Flash_Gordon
Já sice tu střídu mám ale ve druhém adresáři :-(
Víťa 02.03.2019 10:59
Víťa
- Má být ve stejném adresáři jako main activity (to vidíš z dodaného projektu) - Má být dostupná, pa…
Flash_Gordon 02.03.2019 11:56
Flash_Gordon
Už jsem to opravil to by mělo vyvolat něco podobného jako je na skenu na levé straně ale to nevyvolá… poslední
Víťa 02.03.2019 12:05
Víťa

Ahoj.

1) Naplánuješ pomocí tzv. Alarmu/scheduleru ve službě (service) čas, kdy se má služba aktivovat.[LINK]

2) Vložíš kód pro probuzení device (nezapomenout na manifest) [LINK]

3) Aktivuješ zavolání na číslo (nezapomenout na manifest)

Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + "Your Phone_number"));
startActivity(intent);

Permission Manifest:

<uses-permission android:name="android.permission.CALL_PHONE" />

:-D

Tak já to mám takto postupoval jsem podle tvého návodu toto by se mělo probouzet každých 30 minut


import android.app.PendingIntent;
import android.content.Intent;
import android.net.Uri;
import android.os.SystemClock;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.app.AlarmManager;

public class MainActivity extends AppCompatActivity {
    
    AlarmManager alarmManager;
    private PendingIntent alarmIntent;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        alarmManager.setInexactRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime() + AlarmManager.INTERVAL_HALF_HOUR, AlarmManager.INTERVAL_HALF_HOUR, alarmIntent);

        Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("123456789"));
        startActivity(intent);
    }
}

v emulátoru to udělá dvě události vis sken
Nemůžeš mi poskytnout přesný příklad abych u toho nestrávil mládí :-D

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" />

Jak to vyzkoušet ve emulátoru ?já jsem upravil ten můj projekt podle tvého sice to nepadá ale taky se nic neděje akorát po kliknutí na tlačítko tak se zobrazí Toast Volání proběhne za: 1 minut
v manifestu se mi podařilo přidat toto
<uses-permission android:name="android.permission.CALL_PHONE"></uses-permission>
<uses-permission android:name="android.permission.WAKE_LOCK"></uses-permission>
<uses-permission android:name="android.permission.DISABLE_KEYGUARD"></uses-permission>
<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>

ostatní dvě se
<uses-permission android:name="android.permission.PARTIAL_WAKE_LOCK" />
<uses-permission android:name="android.permission.ACCESS_NOTIFICATION_POLICY" />

se mi tam nepodařilo přidat bez chyby
Další věc jak nastavit tu správnou SIMku ze které se bude volat když je tam mám dvě -duo ?
díky

Musím se přiznat, jsem z tebe poněkud neradostný.
Reakční doba řádově ve dnech, chybové hlášky sem nezkopíruješ.
Vycházíš ze svého projektu a ne z mého.....

<uses-permission android:name="android.permission.PARTIAL_WAKE_LOCK" />
<uses-permission android:name="android.permission.ACCESS_NOTIFICATION_POLICY" />

Tipuju, že v případě těch permissions tam nemáš ošetřen dotaz na povolení (zase v mém projektu to funkční je).
V manifestu taky musíš mít referenci na MyBroadcastReceiver, která ti tam patrně chybí... (zase v mém projektu to funkční je).

Když máš problém vykopírovat to z funkčního projektu, tak tady je každá rada drahá.

Zpět do poradny Odpovědět na původní otázku Nahoru