2011-12-27 5 views
0

携帯電話は毎分振動しません。ここに私のコードは次のとおりです。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マニフェストでandroid.permission.VIBRATE許可を登録しました。

答えて

1

あなたは間違った場所で許可を得ている可能性があります。

または、サービスを開始していない可能性があります。

サービスを開始していますが、サービスを停止しています。Androidは、次のティックが到着する前に空のプロセスを取り除いています。

または、振動モータを搭載していないエミュレータでテストしています。

または、振動モータを搭載していないデバイスでテストしています。

その他の問題があるかもしれませんが、それらはあなたを始めなければなりません。

+0

サービスを開始していない可能性があります。どうすれば開始できますか、終了できますか? –

+0

@alexvii:サービスを開始するには、 'startService()'を呼び出します。サービスを停止するには、 'stopService()'を呼び出すか、 'stopSelf()'を呼び出します。 – CommonsWare

+0

しかし、私の答えで見ることができるように、私はすでにそれをテストしました。私は間違って何をしていますか? –

関連する問題