Courtesy: GitHub

Android FindMyPhone Sample

This sample application notifies you when you may have left your phone behind (specifically, when your companion and wearable disconnect). If you have misplaced your phone, but it is still connected to your wearable, you can also start an activity on the wearable to sound an alarm on your phone.

Pre-requisites

  • Android SDK 26
  • Android Build Tools v26.0.1
  • Android Support Repository

Getting Started

This sample uses the Gradle build system. To build this project, use the "gradlew build" command or use "Import Project" in Android Studio.

Support

If you've found an error in this sample, please file an issue: https://github.com/googlesamples/android-FindMyPhone

Patches are encouraged, and may be submitted by forking this project and submitting a pull request through GitHub. Please see CONTRIBUTING.md for more details.

License

Copyright 2017 The Android Open Source Project, Inc.

Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

compile "com.android.support:support-v4:26.1.0"

compile "com.android.support:support-v13:26.1.0"

compile "com.android.support:cardview-v7:26.1.0"

compile "com.android.support:appcompat-v7:26.1.0"

compile 'com.google.android.gms:play-services-wearable:11.4.0'

compile 'com.android.support:support-v13:26.1.0'

compileSdkVersion 26

minSdkVersion 18

targetSdkVersion 23

compile 'com.google.android.gms:play-services-wearable:11.4.0'

compile 'com.android.support:support-v13:26.1.0'

compile 'com.google.android.support:wearable:2.0.5'

compileSdkVersion 26

versionCode 1

versionName "1.0"

minSdkVersion 18

targetSdkVersion 22

package com.example.android.wearable.findphone

uses-permission

  • android.permission.VIBRATE

package com.example.android.wearable.findphone

uses-permission

  • android.permission.VIBRATE

FindPhoneActivity

FindPhoneActivity

Updates the text on the wearable notification. This is used so the notification reflects the current state of the alarm on the phone. For instance, if the alarm is turned on, the notification text indicates that the user can tap it to turn it off, and vice-versa. * @param context @param notificationText The new text to display on the wearable notification.

DisconnectListenerService

FindPhoneService

DisconnectListenerService

Listens for changes in connectivity between this wear device and the phone. More precisely, we need to distinguish the case that the wear device and the phone are connected directly from all other possible cases. To this end, the phone app has registered itself to provide the "find_me" capability and we need to look for connected nodes that provide this capability AND are nearby, to exclude a connection through the cloud. The proper way would have been to use the {@code onCapabilitiesChanged()} callback but currently that callback cannot discover the case where a connection switches from wifi to direct; this shortcoming will be addressed in future updates but for now we will use the {@code onConnectedNodes()} callback.

Creates a notification to inform user that the connectivity to phone has been lost (possibly left the phone behind).

FindPhoneService

Creates a sound on the paired phone to find it.