スマホ上のボタンを押して別のスマホから音楽を鳴らす

#イントロダクション
うちの家族は家の中でよくスマホを見失います。
別の家族のスマホからLINE通話するなどで探そうとしても、通知音をオフにしてると全然どこだかわからない。
なんとか探す方法はないものかと思い、たどり着いたのがこの方法でした。

ちなみにGoogle homeがある場合は「ねえGoogle、私のスマホどこ？」って聞けば済むようですが、うちにはあいにくGoogle homeがないので見送り。

#構成図
![chart02.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401632/034d4a6e-c55d-f025-5259-00c313f398ca.jpeg)


iftttという、きっかけ(トリガー)とアクションの組み合わせを定義できるアプリを使います。
iftttについては例えばhttps://ifttt-japan.club/ などを参照してください。

#作成方法
1.ボタンを押す側のスマホ(スマホA)と、音楽を鳴らす側のスマホ(スマホB)に、それぞれiftttをインストールします。

インストールしたら、Googleアカウントやメールアドレスでアカウント登録します。
メールアドレスの場合は”sign up”から登録できます。

![Screenshot_20190426_181249.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401632/0cb52a94-d993-9894-7b3b-1137664b3eb5.jpeg)

ポイントは、スマホAとスマホBとでそれぞれ別のアカウントで登録することです。
もし同じアカウントで登録すると、ボタンを押したときに両方のスマホで音楽を鳴らそうとするので注意。

2.音楽を鳴らす方のスマホ(スマホB)で、
「ボタン押下→音楽を鳴らす」
というiftttのアプレットを作成します。
ここでのボタンはスマホB側です。
音楽は適当に用意します。私はSoulja feat.青山テルマの「ここにいるよ」にしました。

音楽を鳴らすには、アクションにAndroid DeviceのPlay a specific songを選択します。
![Screenshot_20190428_154720.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401632/9bd40922-dec2-681f-07c9-f63e1c270363.jpeg)


アプレットを実行する際、音楽を鳴らすアプリを選択するダイアログでアクションが止まってしまうことがあります。↓こんな感じで。
![Screenshot_20190428_084127.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401632/8c6f0647-e91d-320b-3a4b-11b7dbbe189b.jpeg)

この場合は音楽を鳴らすアプリを「常時」で選択したあと、もう一度アプレットを起動します。(この設定は後で戻すことができます)
私はGoogle play musicを選択しました。

3.上で作ったアプレットにwebhooksをはさみます。つまり、
　「ボタン押下→webhooks」
　「webhooks→音楽を鳴らす」
という二段構えのアプレットをスマホBで作ります。
webhooksは、ざっくり言うと、インターネット上で伝言メモを置いたり、伝言メモを検知して別のことをしたりできます。
つまりここでの流れは
　「ボタン押下→伝言メモを置く」
　「伝言メモを検知→音楽を鳴らす」
と言い換えられます。

まずは後者のアプレットを作ります。
検知する側のwebhooksの設定は↓こんな感じです。
![Screenshot_20190428_193534.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401632/af894b0e-dfb6-d90b-9fc1-5dff4ea991bb.jpeg)


イベント名は特に決まりはないですが、ここではplay_musicとしてます。

次に前者のアプレットです。伝言メモを置くwebhooksの設定は↓こんな感じです。
![Screenshot_20190428_203455.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401632/3261244f-f402-d316-d644-93c670eabb34.jpeg)



ここでURLは、”https\://maker.ifttt.com/trigger/{イベント名}/with/key/{アカウントごとに払い出されるキー}”　の形式です。

イベント名は、後者側のアプレットで指定したイベント名(ここでは”play_music”)です。

アカウントのキーは以下の手順で確認できます。
iftttの、My Applets→Services→webhooksを選択。
![Screenshot_20190428_195108.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401632/4d21f15d-b48b-36a9-53d0-f825bd66fb64.jpeg)

次にDocumentationをタップ。
![Screenshot_20190428_195552.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401632/c44e5559-176e-79df-9484-c27b67256a5b.jpeg)

↓の図のようにキーが表示されますが、その下のURLの書式をコピーするのが早いです。
![Screenshot_20190428_200542.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401632/7502d5fe-2273-e974-3dff-c6fbdb8023e3.jpeg)

4.上で作った「ボタン押下→webhooks」と同じアプレットを、スマホAで作ります。
webhooksのキーはスマホB側のアカウントのものを使用してください。
スマホBからスマホAに、スマホB側のキー(を含むURL)を転送する必要がありますので、LINEやメールなどを使って転送してください。

以上で出来上がりです。

##留意事項
- スマホによってはifttt自体が作動しない場合があるようです。
- 音楽を鳴らすデフォルトアプリの設定解除は、Google play musicの場合、「設定」→「アプリと通知」→「アプリ」→「Google play music」→「既定で開く」→「設定を消去」です。
![Screenshot_20190428_204633.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401632/be5c2e7c-e265-7057-bd95-fd9df815ac7e.jpeg)
- 音楽を鳴らす側のスマホ(スマホB)は、通知音はミュートでもいいですが、メディア音量はそれなりのボリュームにしておきましょう。

- この仕組みのいいところは、スマホBが通知音をミュートしてても、wifiやbluetoothがoffでも、データ通信さえできれば実行可能なところです。