LoginSignup
13
3

More than 5 years have passed since last update.

会いたくて会いたくて震えてもらった

Posted at

本日はクリスマス・イブですね。みなさんは大切な人と幸せな夜を過ごせておりますでしょうか。
意中の人はいるけれど今年はその人と過ごせそうにないなー。。。って方は、是非「会いたい」という気持ちを言葉に出してみてはいかがでしょうか。

Androidに「会いたい」気持ちを聞いてもらう

Androidに聞いてもらう場合、まずパーミッションの追加が必要です。

AndroidManifest.xml
<uses-permission android:name="android.permission.RECORD_AUDIO" />

ただ聞いてもらうのではなく、きちんと「会いたくて」と認識してほしいから音声認識を入れます。

Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
intent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE, this.getPackageName());
SpeechRecognizer recognizer = SpeechRecognizer.createSpeechRecognizer(this);
recognizer.setRecognitionListener(new RecognitionListener() {
  @Override
  public void onResults(Bundle results) {
    //取得時の処理
  }

  @Override
  public void onEndOfSpeech() {
    //終了時の処理
  }
});
recognizer.startListening(intent);

Androidに震えてもらう

ある歌で「会いたくて会いたくて震える」とありますが、おそらく「会いたくて」も震えはしないと思いますので、代わりにAndroidに震えて頂きます。

Androidに震えてもらう場合、まずパーミッションの追加が必要です。

AndroidManifest.xml
<uses-permission android:name="android.permission.VIBRATE"/>

Androidが音声を聞いてくれるとsetRecognitionListenerのonResultsが呼び出されますので、音声認識の結果が「会いたくて会いたくて」の場合のみ震えるようにします。

@Override
public void onResults(Bundle results) {
  List<String> recData = results.getStringArrayList(android.speech.SpeechRecognizer.RESULTS_RECOGNITION);
  if (recData.get(0).equals("会いたくて会いたくて")) {
    Vibrator vibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE);
    vibrator.vibrate(1500);
  }
}

vibrator.vibrate(1500);
で1.5秒の震えになります。

もう少し運要素を入れたい

ただ震えるのでは楽しくないので、花占い的な占い機能をつけてみます

List<String> recData = results.getStringArrayList(android.speech.SpeechRecognizer.RESULTS_RECOGNITION);
if (recData.get(0).equals("会いたくて会いたくて")) {
  int rand = (int) (Math.random() * 10 + 1);
  Vibrator vibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE);

  if (rand % 10 == 0) {
    long[] pattern = { 0, 400, 50, 400, 100, 200, 100, 200 };
    vibrator.vibrate(pattern, -1);
  }else{
    vibrator.vibrate(1500);
  }
}

これで10分の1の確率で特別な震えが起こるようになります。
相手のことを考えながら「会いたくて会いたくて」と言ったら特別な震えがくるなんて・・・
このアプリを使用してクリスマス・イブの一時を楽しい妄想に変えてみませんか?

反省

ネタでやっているつもりが、自分でも引くぐらい気持ち悪い内容になってしまったこと。

13
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
3