两种方式
1、在activity里面通过BroadcastReceiver Inter消息来监听耳机插拔
//实现类
private HeadsetReceiver mHeadsetReceiver ;
public class HeadsetReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equalsIgnoreCase(Intent.ACTION_HEADSET_PLUG)) {
int state = intent.getIntExtra("state", 0);
if (intent.hasExtra("state")) {
if (intent.getIntExtra("state", 0) == 0) {
//Headset is not plugged
log.v(TAG,"耳机未插入");
} else if (intent.getIntExtra("state", 0) == 1)//Headphones into
{
log.v(TAG,"耳机已插入");
}
}
}
}
}
调用:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
registerReceiver(mHeadsetPlugUnplugBroadcastReceiver,
new IntentFilter(Intent.ACTION_HEADSET_PLUG));
}
2 、通过线程监听 打开state文件 比对里面的值来检测耳机是否插入
1:表示已插入耳机,0:表示未插入耳机
private FileReader file;
private String HEADSET_STATE_PATH = "/sys/class/switch/h2w/state";
public void spraygunRun() {
new Thread(new Runnable() {
public void run() {
try {
while(!Thread.currentThread().isInterrupted()){
Thread.sleep(1000);
file = new FileReader(HEADSET_STATE_PATH);
char[] buffer = new char[1024];
int len = file.read(buffer, 0, 1024);
int headsetState = Integer.valueOf((new String(buffer, 0, len)).trim());
if(headsetState==0){
log.v(TAG,"耳机未插入");
}
}
} catch (Exception e) {
Thread.currentThread().interrupt();
}
}
}).start();
}
1、在activity里面通过BroadcastReceiver Inter消息来监听耳机插拔
//实现类
private HeadsetReceiver mHeadsetReceiver ;
public class HeadsetReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equalsIgnoreCase(Intent.ACTION_HEADSET_PLUG)) {
int state = intent.getIntExtra("state", 0);
if (intent.hasExtra("state")) {
if (intent.getIntExtra("state", 0) == 0) {
//Headset is not plugged
log.v(TAG,"耳机未插入");
} else if (intent.getIntExtra("state", 0) == 1)//Headphones into
{
log.v(TAG,"耳机已插入");
}
}
}
}
}
调用:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
registerReceiver(mHeadsetPlugUnplugBroadcastReceiver,
new IntentFilter(Intent.ACTION_HEADSET_PLUG));
}
2 、通过线程监听 打开state文件 比对里面的值来检测耳机是否插入
1:表示已插入耳机,0:表示未插入耳机
private FileReader file;
private String HEADSET_STATE_PATH = "/sys/class/switch/h2w/state";
public void spraygunRun() {
new Thread(new Runnable() {
public void run() {
try {
while(!Thread.currentThread().isInterrupted()){
Thread.sleep(1000);
file = new FileReader(HEADSET_STATE_PATH);
char[] buffer = new char[1024];
int len = file.read(buffer, 0, 1024);
int headsetState = Integer.valueOf((new String(buffer, 0, len)).trim());
if(headsetState==0){
log.v(TAG,"耳机未插入");
}
}
} catch (Exception e) {
Thread.currentThread().interrupt();
}
}
}).start();
}