Rumah > Soal Jawab > teks badan
Permintaan sekarang ialah. Pantau palam dan cabut plag fon kepala selepas menghidupkan telefon atau tanpa membuka apl. untuk melakukan operasi yang berbeza.
Pemikiran semasa ialah.
Mulakan perkhidmatan selepas but, dan pantau status memasang dan mencabut fon kepala dalam perkhidmatan. Jika fon kepala dipasang, buka Aktiviti. Jika tidak, tutup Aktiviti semasa.
Ada yang salah dengan keseluruhan idea??
天蓬老师2017-06-24 09:44:57
import android.app.ActivityManager;
import android.app.Service;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.IBinder;
import android.util.Log;
import java.util.List;
Service Headphone kelas awam melanjutkan Perkhidmatan {
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);
}
}
}
};
}