Android 台灣中文網
標題:
偵測耳機孔是否有無插入耳機 ...
[打印本頁]
作者:
judon
時間:
2012-5-11 13:45
標題:
偵測耳機孔是否有無插入耳機 ...
要注意的是 BroadcastReceiver 使用靜態註冊在 AndroidManifest.xml 可能會無效,
所以要像以下程式使用動態寫入註冊才可以,離開APP時,要註銷廣播程式...
HeadSetActivity.java 內容 (主畫面 Java檔)
import android.app.Activity;
import android.content.IntentFilter;
import android.os.Bundle;
public class HeadSetActivity extends Activity {
HeadsetPlugReceiver headsetPlugReceiver;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
registerHeadsetPlugReceiver();
}
private void registerHeadsetPlugReceiver(){
headsetPlugReceiver = new HeadsetPlugReceiver ();
IntentFilter filter = new IntentFilter();
filter.addAction("android.intent.action.HEADSET_PLUG");
registerReceiver(headsetPlugReceiver, filter);
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
unregisterReceiver();
}
private void unregisterReceiver(){
this.unregisterReceiver(headsetPlugReceiver);
}
}
HeadsetPlugReceiver.java 內容
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;
public class HeadsetPlugReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
if(intent.hasExtra("state")){
if(intent.getIntExtra("state", 0)==0){
Toast.makeText(context, "headset not connected", Toast.LENGTH_LONG).show();
}
else if(intent.getIntExtra("state", 0)==1){
Toast.makeText(context, "headset connected", Toast.LENGTH_LONG).show();
}
}
}
}
作者:
kevin7799
時間:
2013-9-4 10:58
謝謝大大辛苦努力的分享
歡迎光臨 Android 台灣中文網 (https://apk.tw/)
Powered by Discuz! X3.1