Autore Topic: action.ACTION_SHUTDOWN  (Letto 1546 volte)

Offline mist3r0

  • Nuovo arrivato
  • *
  • Post: 48
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire
action.ACTION_SHUTDOWN
« il: 20 Novembre 2010, 16:05:18 CET »
0
Ciao ragazzi,

volevo chiedere una cosa, è possibile lanciare l'intente di chiusura del device (action.ACTION_SHUTDOWN) in questo modo:

Intent in= new Intent("android.intent.action.ACTION_SHUTDOWN");
startActivity(in);

Faccio tale domanda perchè nella documentazione viene riportato quanto segue: "This is a protected intent that can only be sent by the system."

Vuol dire che solo il sistema la può eseguire?

Grazie

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:action.ACTION_SHUTDOWN
« Risposta #1 il: 20 Novembre 2010, 16:18:39 CET »
0
Vuol dire che solo il sistema la può eseguire?

Sembrerebbe abbastanza chiaro, no? :)

Offline mist3r0

  • Nuovo arrivato
  • *
  • Post: 48
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire
Re:action.ACTION_SHUTDOWN
« Risposta #2 il: 20 Novembre 2010, 16:19:47 CET »
0
Non c'è nessun modo per farlo chiamare al sistema quando voglio io??

Offline JD

  • Amministratore
  • Utente storico
  • *****
  • Post: 1600
  • Respect: +232
    • leinardi
    • Mostra profilo
  • Dispositivo Android:
    LG Nexus 5
  • Sistema operativo:
    L'ultima Ubuntu
Re:action.ACTION_SHUTDOWN
« Risposta #3 il: 20 Novembre 2010, 16:34:40 CET »
0
Temo proprio di no, ci ho sbattuto la testa per diverso tempo invano :(.
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !

Offline salvatore.zagarella

  • Utente normale
  • ***
  • Post: 239
  • Respect: +2
    • Mostra profilo
    • Ieeng Solution
Re:action.ACTION_SHUTDOWN
« Risposta #4 il: 25 Luglio 2012, 18:26:44 CEST »
0
Ragazzi scusate..scrivo in questo post che mi sembra il più azzecato..
C'è modo di intercettare il ACTION_SHUTDOWN del cell per eseguire delle operazioni ad hoc??

Grazie..

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:action.ACTION_SHUTDOWN
« Risposta #5 il: 27 Luglio 2012, 16:03:16 CEST »
0
Certo, basta che crei un broadcast receiver:

Codice (Java): [Seleziona]
public class ShutdownReceiver extends BroadcastReceiver {

        public void onReceive(Context context, Intent intent) {
           //fai quello che devi
        }
}

E poi lo aggiungi nel manifest:

Codice (XML): [Seleziona]
<receiver android:name=".ShutdownReceiver">
  <intent-filter>
   <action android:name="android.intent.action.ACTION_SHUTDOWN" />
  </intent-filter>
 </receiver>

Offline salvatore.zagarella

  • Utente normale
  • ***
  • Post: 239
  • Respect: +2
    • Mostra profilo
    • Ieeng Solution
Re:action.ACTION_SHUTDOWN
« Risposta #6 il: 31 Luglio 2012, 14:23:00 CEST »
0
Grazie richy..
Si riesco ad intercettare l'evento ma ho un problema.. Dopo aver fatto una query su DB vorrei visualizzare un AlertDialog.
In diverse app ho usato l'alert e non ho avuto problemi ma qui non riesco..
Il codice che uso è il seguente:
Codice (Java): [Seleziona]
public class ShutdownReceiver extends BroadcastReceiver{
        @Override
        public void onReceive(Context context, Intent intent) {
                Log.i("shut", "intercept");    

                SQLiteDatabase myQuery = (new ieengDatabaseHelper(context)).getReadableDatabase();
                String query = "query su DB";
                Cursor result = myQuery.rawQuery(query, null);
       
                while (result.moveToNext()){                   
                                AlertDialog.Builder alertDialog = new AlertDialog.Builder(context);
                                alertDialog.setIcon(R.drawable.time_allert);
                                alertDialog.setTitle("www.ieengsolution.it");
                                alertDialog.setMessage(R.string.shut_down);

                                alertDialog.setPositiveButton("OK", new OnClickListener() {                                    
                                        @Override
                                        public void onClick(DialogInterface dialog, int which) {
                                                dialog.dismiss();                                              
                                        }
                                });
                                alertDialog.show();                                                                    
                }      
        }
}

Ma ottengo un errore:
Codice: [Seleziona]
07-31 12:15:57.789: W/BatteryStats(88): Writing battery stats before shutdown...
07-31 12:15:57.958: A/BatteryStatsImpl(88): problem reading network stats
07-31 12:15:57.958: A/BatteryStatsImpl(88): java.lang.IllegalStateException: problem parsing line: null
07-31 12:15:57.958: A/BatteryStatsImpl(88):         at com.android.internal.net.NetworkStatsFactory.readNetworkStatsDetail(NetworkStatsFactory.java:313)
07-31 12:15:57.958: A/BatteryStatsImpl(88):         at com.android.internal.net.NetworkStatsFactory.readNetworkStatsDetail(NetworkStatsFactory.java:247)
07-31 12:15:57.958: A/BatteryStatsImpl(88):         at com.android.internal.os.BatteryStatsImpl.getNetworkStatsDetailGroupedByUid(BatteryStatsImpl.java:5734)
07-31 12:15:57.958: A/BatteryStatsImpl(88):         at com.android.internal.os.BatteryStatsImpl.access$100(BatteryStatsImpl.java:76)
07-31 12:15:57.958: A/BatteryStatsImpl(88):         at com.android.internal.os.BatteryStatsImpl$Uid.computeCurrentTcpBytesReceived(BatteryStatsImpl.java:2457)
07-31 12:15:57.958: A/BatteryStatsImpl(88):         at com.android.internal.os.BatteryStatsImpl$Uid.getTcpBytesReceived(BatteryStatsImpl.java:2446)
07-31 12:15:57.958: A/BatteryStatsImpl(88):         at com.android.internal.os.BatteryStatsImpl.writeSummaryToParcel(BatteryStatsImpl.java:5437)
07-31 12:15:57.958: A/BatteryStatsImpl(88):         at com.android.internal.os.BatteryStatsImpl.writeLocked(BatteryStatsImpl.java:4836)
07-31 12:15:57.958: A/BatteryStatsImpl(88):         at com.android.internal.os.BatteryStatsImpl.writeSyncLocked(BatteryStatsImpl.java:4822)
07-31 12:15:57.958: A/BatteryStatsImpl(88):         at com.android.internal.os.BatteryStatsImpl.shutdownLocked(BatteryStatsImpl.java:4810)
07-31 12:15:57.958: A/BatteryStatsImpl(88):         at com.android.server.am.BatteryStatsService.shutdown(BatteryStatsService.java:71)
07-31 12:15:57.958: A/BatteryStatsImpl(88):         at com.android.server.am.ActivityManagerService.shutdown(ActivityManagerService.java:6283)
07-31 12:15:57.958: A/BatteryStatsImpl(88):         at com.android.internal.app.ShutdownThread.run(ShutdownThread.java:281)
07-31 12:15:57.958: A/BatteryStatsImpl(88): Caused by: java.io.FileNotFoundException: /proc/net/xt_qtaguid/stats: open failed: ENOENT (No such file or directory)
07-31 12:15:57.958: A/BatteryStatsImpl(88):         at libcore.io.IoBridge.open(IoBridge.java:406)
07-31 12:15:57.958: A/BatteryStatsImpl(88):         at java.io.FileInputStream.<init>(FileInputStream.java:78)
07-31 12:15:57.958: A/BatteryStatsImpl(88):         at java.io.FileReader.<init>(FileReader.java:42)
07-31 12:15:57.958: A/BatteryStatsImpl(88):         at com.android.internal.net.NetworkStatsFactory.readNetworkStatsDetail(NetworkStatsFactory.java:272)
07-31 12:15:57.958: A/BatteryStatsImpl(88):         ... 12 more
07-31 12:15:57.958: A/BatteryStatsImpl(88): Caused by: libcore.io.ErrnoException: open failed: ENOENT (No such file or directory)
07-31 12:15:57.958: A/BatteryStatsImpl(88):         at libcore.io.Posix.open(Native Method)
07-31 12:15:57.958: A/BatteryStatsImpl(88):         at libcore.io.BlockGuardOs.open(BlockGuardOs.java:98)
07-31 12:15:57.958: A/BatteryStatsImpl(88):         at libcore.io.IoBridge.open(IoBridge.java:390)

Il receiver l'ho impostato come mi hai suggerito infatti prendo l'action; faccio anche la query ma non riesco a visualizzare il Dialog.

Idee??
 :-\

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:action.ACTION_SHUTDOWN
« Risposta #7 il: 31 Luglio 2012, 14:31:28 CEST »
0
Premesso che il tuo problema a questo punto è off-topic in questo thread credo che tu non possa mostrare un Dialog da un BroadcastReceiver e tantomeno facendolo in un ciclo.

Offline salvatore.zagarella

  • Utente normale
  • ***
  • Post: 239
  • Respect: +2
    • Mostra profilo
    • Ieeng Solution
Re:action.ACTION_SHUTDOWN
« Risposta #8 il: 31 Luglio 2012, 14:46:20 CEST »
0
ok.. Cerco allora di trovare una soluzione alternativa..
Grazie e scusate l'OffTopic..