2011-12-27 4 views
0

내 전화가 1 분마다 진동하지 않습니다.Android에서 ACTION_TIME_TICK의 문제가 발생했습니다.

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.os.Vibrator; 

public class vibrateNow extends Service { 
static IntentFilter s_intentFilter; 
static { 
    s_intentFilter = new IntentFilter(); 
    s_intentFilter.addAction(Intent.ACTION_TIME_TICK); 
} 
BroadcastReceiver yourReceiver; 

public void onCreate() { 
    super.onCreate(); 

    this.yourReceiver = new BroadcastReceiver(){ 
     @Override 
     public void onReceive(Context context, Intent intent) { 
      showSuccessfulBroadcast(); 
     } 
    }; 
    // Registers the receiver so that your service will listen for broadcasts 
    vibrateNow.this.registerReceiver(vibrateNow.this.yourReceiver, s_intentFilter); 
} 

@Override 
public IBinder onBind(Intent arg0) { 
    return null; 
} 

private void showSuccessfulBroadcast() { 
    Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE); 

    // Vibrate for 300 milliseconds 
    v.vibrate(300); 

} 
} 

방식 그런데 : 여기 내 코드는 내가 안드로이드 매니페스트에 android.permission.VIBRATE 권한을 등록했다.

답변

1

잘못된 위치에서 권한을 가질 수 있습니다.

또는 서비스를 시작하지 않았을 수 있습니다.

또는 서비스를 시작했지만 중지 중이며 안드로이드는 다음 틱이 도착하기 전에 빈 프로세스를 제거합니다.

또는 진동 모터가없는 에뮬레이터에서 테스트 중입니다.

또는 진동 모터가없는 장치에서 테스트 중입니다.

다른 문제가있을 수 있지만 시작해야합니다.

+0

내 서비스가 시작되지 않았을 수도 있습니다. 어떻게 시작하거나 종료 할 수 있습니까? –

+0

@alexvii : 서비스를 시작하려면'startService()'를 호출하십시오. 서비스를 중지하려면'stopService()'를 호출하거나 서비스가'stopSelf()'를 호출하십시오. – CommonsWare

+0

하지만 내 대답에서 볼 수있는 것처럼 나는 이미 그것을 테스트했습니다. 임 씨발 뭐가 잘못 됐니? –

관련 문제