Oppure

Loading
16/06/13 13:48
Ho pensato ad un'applicazione che permettesse di usare la pressione prolungata dei tasti per avviarsi dal background, dunque ho iniziato a guardare come funziona la ricezione di eventi Broadcast, non ho trovato nulla sulla pressione prolungata quindi ho pensato di usare il tasto HOME premuto ripetutamente più volte (2 o 3 penso).
Intanto ho iniziato per vedere se riesco a fare una semplice app che intercetta i tasti.

Ho inserito questo codice in <application> sul file manifest:

<receiver android:name="daf.android.test.readKey.RemoteKeyControl">
  <intent-filter android:priority="@integer/rec_priority">
    <action android:name="android.intent.action.MEDIA_BUTTON" />
  </intent-filter>
</receiver>


dove rec_priority è dichiarato integer 1000. (Max System Priority)
e ho creato la classe daf.android.test.readKey.RemoteKeyControl:

public class RemoteKeyControl extends BroadcastReceiver {

	@Override
	public void onReceive(Context context, Intent intent) {
		String s = "Action";
		if(Intent.ACTION_MEDIA_BUTTON.equals(intent.getAction())) {
			s += " Media Button";
			KeyEvent e = intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT);
			if(e != null) {
				switch(e.getAction()) {
					case KeyEvent.ACTION_DOWN:
						s += " DOWN";
					break;
					case KeyEvent.ACTION_UP:
						s += " UP";
					break;
				}
			}
		}
		Toast.makeText(context, s, Toast.LENGTH_LONG);
	}

}


Non viene mai mostrato nessun Toast. :( (Neanche "Action" e basta!)

Potete aiutarmi? Non so proprio più cosa provare...

Grazie in anticipo :k:

Probabilmente è un errore banale, ma non so proprio dove cercare...
16/06/13 21:11
LittleHacker
Scusa...prima di fare i controlli sul tasto premuto...prova a fare una cosa del genere:
public class RemoteKeyControl extends BroadcastReceiver {
 
        @Override
        public void onReceive(Context context, Intent intent) {
                Toast.makeText(context, "Pressed", Toast.LENGTH_LONG);
        }
 
}


Così quando viene premuto un qualsiasi pulsante(menu, home o indietro), ti visualizza un toast!
aaa
16/06/13 22:42
Postato originariamente da LittleHacker:

Scusa...prima di fare i controlli sul tasto premuto...prova a fare una cosa del genere:
public class RemoteKeyControl extends BroadcastReceiver {
 
        @Override
        public void onReceive(Context context, Intent intent) {
                Toast.makeText(context, "Pressed", Toast.LENGTH_LONG);
        }
 
}


Così quando viene premuto un qualsiasi pulsante(menu, home o indietro), ti visualizza un toast!


Quello che faccio nel codice dovrebbe fare un Toast con scritto almeno "Action" in qualiasi caso entri nella funzione onReceive()
17/06/13 19:41
LittleHacker
Postato originariamente da Dario DF:

Postato originariamente da LittleHacker:

Scusa...prima di fare i controlli sul tasto premuto...prova a fare una cosa del genere:
public class RemoteKeyControl extends BroadcastReceiver {
 
        @Override
        public void onReceive(Context context, Intent intent) {
                Toast.makeText(context, "Pressed", Toast.LENGTH_LONG);
        }
 
}


Così quando viene premuto un qualsiasi pulsante(menu, home o indietro), ti visualizza un toast!


Quello che faccio nel codice dovrebbe fare un Toast con scritto almeno "Action" in qualiasi caso entri nella funzione onReceive()


Magari hai sbagliato a scrivere nella classe che hai creato? Quello che faccio io, prima di costruire tutta l'app completa, è ad ogni azione corrisponde un debug(toast, alert o un Log), così da vedere se il codice che ho scritto fa esattamente quello che voglio faccia!
aaa