package com.ksh.SafeEarphone;import java.util.Timer;
import java.util.TimerTask;import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.media.AudioManager;
import android.os.IBinder;
import android.util.Log;
import android.widget.Toast;public class service extends Service{
 @Override
 public IBinder onBind(Intent intent) {
  return null;
 }
 
 @Override
 public void onStart(Intent intent, int startId) {
  Log.d("slog", "onStart()");
  super.onStart(intent, startId);   AudioManager am = (AudioManager)getSystemService(AUDIO_SERVICE); 
  Log.i("am.isWiredHeadsetOn()", am.isWiredHeadsetOn()+"");
    
  AudioManager audioManager = (AudioManager) this.getSystemService(Context.AUDIO_SERVICE); 
  
  if(audioManager.isWiredHeadsetOn()==true){ 
   
   Log.i("test", "wired set on");
   Intent myIntent = new Intent(this,SafeEarphone.class);
   this.startActivity(myIntent);
   Toast.makeText(this,"Earphones are set on2",Toast.LENGTH_SHORT).show();
   
  }
  else{
    Log.i("test", "ACTION_HEADSET_PLUG == 0");
    Toast.makeText(this, "이어폰 연결이 되지 않았습니다람쥐.", Toast.LENGTH_SHORT)
    .show();       
   }
  }
}



서비스에서 이어폰 연결여부를 확인합니다. 연결되면  SafeEarphone.java 메인 액티티가 실행되게끔

이어폰이 연결되어있지않으면 Main.java 액티비티가 실행되게끔 했습니다.

 

아래는 Main.java 소스입니다.

 

  package com.ksh.SafeEarphone;import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.Window;public class Main extends Activity { /** Called when the activity is first created. */
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  requestWindowFeature(Window.FEATURE_NO_TITLE);
  setContentView(R.layout.start);
    startService(new Intent("com.ksh.SafeEarphone"));
  Handler handler = new Handler () {
    
            @Override
            public void handleMessage(Message msg)
            {
                // TODO Auto-generated method stub
                super.handleMessage(msg);
                finish();
            }
        };
        handler.sendEmptyMessageDelayed(0, 2500);
        // TODO Auto-generated method stub 
 }}

 

 

Manifest에는 아래와같이 작성했습니다.

 

 

 <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
 package="com.ksh.SafeEarphone" android:versionCode="1"
 android:versionName="1.0">
 <application android:icon="@drawable/icon72" android:label="@string/app_name">
 
 <service android:name="service">
            <intent-filter>
                <action android:name="com.ksh.SafeEarphone"/>           
                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>
        </service>
  <activity android:name=".Main" android:label="@string/app_name" noHistory="true">
   <intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
   </intent-filter>
 </activity><activity android:name="SafeEarphone"></activity> </application>
 <uses-sdk android:minSdkVersion="8" /> <uses-permission android:name="android.permission.RECORD_AUDIO" />
 <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
 <uses-permission android:name="android.permission.INJECT_EVENTS"></uses-permission></manifest> 


 

 

 

SafeEarphone.java 에는 건드리지않아 이상이없구요.

어플실행시 이어폰은 꽂지않은 상태에서는 잘되는데

이어폰이 연결된상태에서 실행하면 애플리케이션이 예상치않게 중단 되었습니다. 다시시도해주세요. 하면서 안되네요..

어떻게 해야 될까요??ㅠ_ㅠ 도와주세요~

 

1.jpg

에러로그입니다..