Autore Topic: Problema avvio app dopo il bootloader  (Letto 717 volte)

Offline MisterAnt

  • Utente normale
  • ***
  • Post: 272
  • Respect: +4
    • IlSikano
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S4 Active,Galaxy SIII I9300, Galaxy Tab GT-P5100
  • Play Store ID:
    MisterAnt
  • Sistema operativo:
    Ubuntu 12.04/Winzoz 7/Winzoz xp
Problema avvio app dopo il bootloader
« il: 19 Dicembre 2012, 10:45:31 CET »
0
Buongiorno a tutti :)
Ho un piccolo problemino con la mia app...
Vorrei che partisse dopo il caricamento del bootloader...Ma purtroppo non funge per niente sia se avvio un service che un activity
Posto le classi usate...
Codice (Java): [Seleziona]
package com.example.start;

import android.app.Activity;
import android.os.Bundle;

public class Main extends Activity{
        public void onCreate(Bundle savedInstanceState){
                super.onCreate(savedInstanceState);
                setContentView(R.layout.avvio);
        }
}
Codice (Java): [Seleziona]
package com.example.start;

import com.example.start.Main;

import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.widget.Toast;

public class MyService extends Service{
/////////////////////////////////////////////
        public void onCreate(){
                super.onCreate();
                        Toast.makeText(getApplicationContext(), "Avviooooo service", Toast.LENGTH_SHORT).show();
                        Intent start = new Intent(getApplicationContext(),Main.class);
                        startActivity(start);
        }
        ////////////////////////////////////////////
        public IBinder onBind(Intent arg0) {
                return null;
        }
////////////////////////////////////////////
}
Codice (Java): [Seleziona]
package com.example.start;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;

public class StartMyServiceAtBootReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        if ("android.intent.action.BOOT_COMPLETED".equals(intent.getAction())) {
            //Intent serviceIntent = new Intent("com.example.start.MyService");//se avvio il service uso queste due righe
            //context.startService(serviceIntent);
                Intent i = new Intent(context, Main.class);  //queste sono per avviare l'activity
            i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(i);
        }
    }
}
Infine il manifest
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.example.start"
   android:versionCode="1"
   android:versionName="1.0" >

    <uses-sdk
       android:minSdkVersion="8"
       android:targetSdkVersion="17" />

   
     <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
   
   
   
    <application
       android:allowBackup="true"
       android:icon="@drawable/ic_launcher"
       android:label="@string/app_name"
       android:theme="@style/AppTheme" >
       
       
       <service
          android:name=".MyService"
          android:label="My Service"
          android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
                <intent-filter>
                        <action android:name="com.example.start.MyService" />
                </intent-filter>
                </service>

                <receiver
                android:name=".receiver.StartMyServiceAtBootReceiver"
                android:enabled="true"
                android:exported="true"
                android:label="StartMyServiceAtBootReceiver">
                <intent-filter>
                        <action android:name="android.intent.action.BOOT_COMPLETED" />
                        <category android:name="android.intent.category.DEFAULT" />
                </intent-filter>
                </receiver>
               
                <activity
          android:name=".Main"
          android:label="@string/app_name"
          android:theme="@style/AppTheme">
        </activity>
       
       
    </application>

</manifest>
I OS Android su cui ho provato montano ICS e JB..
« Ultima modifica: 19 Dicembre 2012, 12:19:01 CET da MisterAnt »
Se le zampe del coniglio sono così fortunate, che fine ha fatto il coniglio?

Offline MisterAnt

  • Utente normale
  • ***
  • Post: 272
  • Respect: +4
    • IlSikano
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S4 Active,Galaxy SIII I9300, Galaxy Tab GT-P5100
  • Play Store ID:
    MisterAnt
  • Sistema operativo:
    Ubuntu 12.04/Winzoz 7/Winzoz xp
Far avviare un app dopo il boot
« Risposta #1 il: 19 Dicembre 2012, 12:33:29 CET »
0
Buongiorno a tutti :)
Qualchuno mi sà dire se si può far effettivamente partire un applicazione dopo aver effettuato il boot??
Ho trovato opinioni discordanti sul www...
Se le zampe del coniglio sono così fortunate, che fine ha fatto il coniglio?

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Far avviare un app dopo il boot
« Risposta #2 il: 19 Dicembre 2012, 12:36:23 CET »
0
Devi "catturare" l'intent BOOT_COMPLETED (scrivo a memoria, magari il nome è leggermente diverso, ma googlando trovi facilmente le info necessarie).
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline MisterAnt

  • Utente normale
  • ***
  • Post: 272
  • Respect: +4
    • IlSikano
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S4 Active,Galaxy SIII I9300, Galaxy Tab GT-P5100
  • Play Store ID:
    MisterAnt
  • Sistema operativo:
    Ubuntu 12.04/Winzoz 7/Winzoz xp
Re:Far avviare un app dopo il boot
« Risposta #3 il: 19 Dicembre 2012, 12:39:25 CET »
0
Eeheh magari fosse così facile...ho postato il codice usato su Problema avvio app dopo il bootloader - Android Developers Italia
Non è mia intenzione duplicare un post...Ma tra i vari esempi provati googlando in giro non ne esco fuori..non perchè ho errori ma perchè il
BroadcastReceiver non funge dopo il boot...allora mi chiedevo se si può fare o meno XD
Se le zampe del coniglio sono così fortunate, che fine ha fatto il coniglio?

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Far avviare un app dopo il boot
« Risposta #4 il: 19 Dicembre 2012, 12:48:50 CET »
0
Eeheh magari fosse così facile...ho postato il codice usato su Problema avvio app dopo il bootloader - Android Developers Italia
Non è mia intenzione duplicare un post...Ma tra i vari esempi provati googlando in giro non ne esco fuori..non perchè ho errori ma perchè il
BroadcastReceiver non funge dopo il boot...allora mi chiedevo se si può fare o meno XD

In una mia app lo uso ormai da oltre un anno, per cui sicuramente funziona.
Dove sia il problema nel tuo caso a prima vista non lo vedo.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline MisterAnt

  • Utente normale
  • ***
  • Post: 272
  • Respect: +4
    • IlSikano
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S4 Active,Galaxy SIII I9300, Galaxy Tab GT-P5100
  • Play Store ID:
    MisterAnt
  • Sistema operativo:
    Ubuntu 12.04/Winzoz 7/Winzoz xp
Re:Far avviare un app dopo il boot
« Risposta #5 il: 19 Dicembre 2012, 14:00:44 CET »
0
Ok bradipao..ma lo usi su un Gingerbread giusto? XD
Se le zampe del coniglio sono così fortunate, che fine ha fatto il coniglio?

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Far avviare un app dopo il boot
« Risposta #6 il: 19 Dicembre 2012, 14:18:54 CET »
0
Ok bradipao..ma lo usi su un Gingerbread giusto? XD

L'applicazione è sul market col nome RACEDAY, ha un migliaio di installazioni attive su un po' tutte le versioni di android dal 2.2 in su. Effettivamente la versione sul mio cell gira su gingerbread e funziona, non ho idea se quelle sulle versioni successive abbiano problemi di questo genere o meno. E' anche vero che io non faccio partire una activity, ma imposto un alarmmanager che a sua volta genera una notifica dalla quale è poi possibile aprire l'activity.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline MisterAnt

  • Utente normale
  • ***
  • Post: 272
  • Respect: +4
    • IlSikano
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S4 Active,Galaxy SIII I9300, Galaxy Tab GT-P5100
  • Play Store ID:
    MisterAnt
  • Sistema operativo:
    Ubuntu 12.04/Winzoz 7/Winzoz xp
Re:Problema avvio app dopo il bootloader
« Risposta #7 il: 19 Dicembre 2012, 14:21:08 CET »
0
Grazie ^.^
Adesso provo l'app e vediamo :)
Se le zampe del coniglio sono così fortunate, che fine ha fatto il coniglio?

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Problema avvio app dopo il bootloader
« Risposta #8 il: 19 Dicembre 2012, 14:25:23 CET »
0
Grazie ^.^
Adesso provo l'app e vediamo :)

Spero tu non ti riferisca alla mia app, perchè attualmente è inutile senza i calendari motoristici del 2013.  :-P
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline MisterAnt

  • Utente normale
  • ***
  • Post: 272
  • Respect: +4
    • IlSikano
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S4 Active,Galaxy SIII I9300, Galaxy Tab GT-P5100
  • Play Store ID:
    MisterAnt
  • Sistema operativo:
    Ubuntu 12.04/Winzoz 7/Winzoz xp
Re:Problema avvio app dopo il bootloader
« Risposta #9 il: 19 Dicembre 2012, 14:46:28 CET »
0
Aahah si mi riferivo alla tua app...XD
vabbè continuo a provare i vari esempi del web...
Sono riuscito a farla partire dopo il boot ma va in crash XD
Se le zampe del coniglio sono così fortunate, che fine ha fatto il coniglio?

Offline MisterAnt

  • Utente normale
  • ***
  • Post: 272
  • Respect: +4
    • IlSikano
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S4 Active,Galaxy SIII I9300, Galaxy Tab GT-P5100
  • Play Store ID:
    MisterAnt
  • Sistema operativo:
    Ubuntu 12.04/Winzoz 7/Winzoz xp
Re:Problema avvio app dopo il bootloader
« Risposta #10 il: 20 Dicembre 2012, 08:57:43 CET »
+1
Risolto!
Posto un esempio semplice semplice che stampa un toast dopo il boot

Classe OnBootReceiver
Codice (Java): [Seleziona]
package com.example.afterboot;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;

public class OnBootReceiver extends BroadcastReceiver{
///////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
        public void onReceive(Context arg0, Intent arg1) {
                //do nothing
                Toast.makeText(arg0, "AVVIO DOPO IL BOOT", Toast.LENGTH_LONG).show();
        }
/////////////////////////////////////////////////////////////
}
Manifest
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.example.afterboot"
   android:versionCode="1"
   android:versionName="1.0" >

    <uses-sdk
       android:minSdkVersion="8"
       android:targetSdkVersion="16" />
   
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

    <application
       android:allowBackup="true"
       android:icon="@drawable/ic_launcher"
       android:label="@string/app_name"
       android:theme="@style/AppTheme" >
       
       
       
        <receiver android:name="com.example.afterboot.OnBootReceiver">
                <intent-filter >
                        <action android:name="android.intent.action.BOOT_COMPLETED"/>
                </intent-filter>
        </receiver>
       
       
       
        <activity
           android:name="com.example.afterboot.Main"
           android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
       
       
       
    </application>

</manifest>
Il Main è la solita classe che viene creata quando fai un nuovo progetto...
Se le zampe del coniglio sono così fortunate, che fine ha fatto il coniglio?