Maison > Questions et réponses > le corps du texte
La demande est désormais là. Surveillez le branchement et le débranchement des écouteurs après avoir allumé le téléphone ou sans ouvrir l'application. pour effectuer différentes opérations.
La pensée actuelle est la suivante.
Démarrez un service après le démarrage et surveillez l'état de branchement et de débranchement des écouteurs dans le service. Si des écouteurs sont branchés, ouvrez une activité. Sinon, fermez l'activité en cours.
Y a-t-il quelque chose qui ne va pas dans cette idée ??
天蓬老师2017-06-24 09:44:57
importer android.app.ActivityManager;
importer android.app.Service;
importer android.content.BroadcastReceiver;
importer android.content.Context;
importer android.content.Intent;
importer android.content.IntentFilter;
importer android.os.IBinder;
importer android.util.Log;
importer java.util.List;
HeadPhoneService de classe publique étend le service {
public HeadPhoneService() {
}
@Override
public IBinder onBind(Intent intent) {
// TODO: Return the communication channel to the service.
throw new UnsupportedOperationException("Not yet implemented");
}
@Override
public void onCreate() {
super.onCreate();
Log.e("xxxx","service start");
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(Intent.ACTION_HEADSET_PLUG);
registerReceiver(headsetReceiver, intentFilter);
return super.onStartCommand(intent, flags, startId);
}
@Override
public void onDestroy() {
Intent service = new Intent(this, HeadPhoneService.class);
this.startService(service);
super.onDestroy();
}
private BroadcastReceiver headsetReceiver=new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (Intent.ACTION_HEADSET_PLUG.equals(action)) {
Log.e("xxxx","headsetchange");
if (intent.hasExtra("state")) {
int state = intent.getIntExtra("state", 0);
if (state == 1) {
} else if(state == 0){
}
Log.e("xxxx","headphone"+state);
}
}
}
};
}