recherche

Maison  >  Questions et réponses  >  le corps du texte

Android surveille le branchement et le débranchement des écouteurs sans ouvrir l'application

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

漂亮男人漂亮男人2747 Il y a quelques jours1123

répondre à tous(2)je répondrai

  • 扔个三星炸死你

    扔个三星炸死你2017-06-24 09:44:57

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

    répondre
    0
  • 天蓬老师

    天蓬老师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);
                }
            }
        }
    };
    

    }

    répondre
    0
  • Annulerrépondre