Android surveille le branchement et le débranchement des écouteurs sans ouvrir l'application
漂亮男人
漂亮男人 2017-06-24 09:42:57
0
2
1080

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 ??

漂亮男人
漂亮男人

répondre à tous(2)
扔个三星炸死你

Le problème est de savoir comment le processus de service survit

Peter_Zhu

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);
            }
        }
    }
};

}

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal