| <?xml version="1.0" encoding="UTF-8"?> |
| <!-- |
| Copyright 2013 The Android Open Source Project |
| |
| Licensed 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. |
| --> |
| |
| <sample> |
| <name>WearHighBandwidthNetworking</name> |
| <group>Wearable</group> <!-- This field will be deprecated in the future |
| and replaced with the "categories" tags below. --> |
| <package>com.example.android.wearable.wear.wearhighbandwidthnetworking</package> |
| |
| <!-- change minSdk if needed--> |
| <minSdk>24</minSdk> |
| <minSdkVersionWear>24</minSdkVersionWear> |
| <targetSdkVersion>26</targetSdkVersion> |
| <targetSdkVersionWear>26</targetSdkVersionWear> |
| <multiDexEnabled>true</multiDexEnabled> |
| |
| <!-- Include additional dependencies here.--> |
| <!-- dependency>com.google.android.gms:play-services:5.0.+</dependency --> |
| <dependency_wearable>com.android.support:wear:27.1.1</dependency_wearable> |
| |
| |
| <strings> |
| <intro> |
| <![CDATA[ |
| Sample demonstrates how to determine if a high-bandwidth network is available for use cases that |
| require a minimum network bandwidth, such as streaming media or downloading large files. In |
| addition, the sample demonstrates best practices for asking a user to add a new Wi-Fi network for |
| high-bandwidth network operations if the bandwidth of currently available networks is inadequate. |
| ]]> |
| </intro> |
| </strings> |
| |
| <template src="base-build" /> |
| <template src="Wear" /> |
| |
| <metadata> |
| <!-- Values: {DRAFT | PUBLISHED | INTERNAL | DEPRECATED | SUPERCEDED} --> |
| <status>PUBLISHED</status> |
| <!-- See http://go/sample-categories for details on the next 4 fields. --> |
| <!-- Most samples just need to udpate the Categories field. This is a comma- |
| seperated list of topic tags. Unlike the old category system, samples |
| may have multiple categories, so feel free to add extras. Try to avoid |
| simply tagging everything with "UI". :)--> |
| <categories>Wearable</categories> |
| <technologies>Android</technologies> |
| <languages>Java</languages> |
| <solutions>Mobile</solutions> |
| <!-- Values: {BEGINNER | INTERMEDIATE | ADVANCED | EXPERT} --> |
| <!-- Beginner is for "getting started" type content, or essential content. |
| (e.g. "Hello World", activities, intents) |
| |
| Intermediate is for content that covers material a beginner doesn't need |
| to know, but that a skilled developer is expected to know. |
| (e.g. services, basic styles and theming, sync adapters) |
| |
| Advanced is for highly technical content geared towards experienced developers. |
| (e.g. performance optimizations, custom views, bluetooth) |
| |
| Expert is reserved for highly technical or specialized content, and should |
| be used sparingly. (e.g. VPN clients, SELinux, custom instrumentation runners) --> |
| <level>INTERMEDIATE</level> |
| <!-- Dimensions: 512x512, PNG fomrat --> |
| <icon>screenshots/icon-web.png</icon> |
| <!-- Path to screenshots. Use <img> tags for each. --> |
| <screenshots> |
| <img>screenshots/wear-1.png</img> |
| <img>screenshots/wear-2.png</img> |
| <img>screenshots/wear-3.png</img> |
| </screenshots> |
| <!-- List of APIs that this sample should be cross-referenced under. Use <android> |
| for fully-qualified Framework class names ("android:" namespace). |
| |
| Use <ext> for custom namespaces, if needed. See "Samples Index API" documentation |
| for more details. --> |
| <api_refs> |
| <android>android.net.ConnectivityManager</android> |
| <android>android.net.NetworkCapabilities</android> |
| <android>android.net.NetworkRequest</android> |
| </api_refs> |
| |
| <!-- 1-3 line description of the sample here. |
| |
| Avoid simply rearranging the sample's title. What does this sample actually |
| accomplish, and how does it do it? --> |
| <description> |
| <![CDATA[ |
| Sample demonstrates how to determine if a high-bandwidth network is available for use cases that |
| require a minimum network bandwidth, such as streaming media or downloading large files. In |
| addition, the sample demonstrates best practices for asking a user to add a new Wi-Fi network for |
| high-bandwidth network operations if the bandwidth of currently available networks is inadequate. |
| ]]> |
| </description> |
| |
| <!-- Multi-paragraph introduction to sample, from an educational point-of-view. |
| Makrdown formatting allowed. This will be used to generate a mini-article for the |
| sample on DAC. --> |
| <intro> |
| <![CDATA[ |
| On Wear, a high-bandwidth network is not always available, as the platform manages |
| network connectivity with the goal of providing the best overall user experience, balancing network |
| bandwidth and maximizing device battery life. For use cases that require high-bandwidth network |
| access, such as transporting large files or streaming media, we recommend that apps: |
| |
| 1. Check for an active network, and if there is one, check its bandwidth. |
| 2. If there isn't an active network, or its bandwidth is insufficient, request access to an |
| unmetered Wi-Fi or cellular network. |
| 3. If a high-bandwidth network is still not avaiable, ask the user to connect to a new Wi-Fi |
| network. |
| |
| You can use the [ConnectivityManager][1] class to check if an active network exists, if the active |
| network has sufficient bandwidth for the desired network operation, and to request an appropriate |
| high-bandwidth network. |
| |
| In addition to requesting a high-bandwidth network, you should also ensure that you are releasing |
| bound networks and cancelling any ongoing network requests when they are no longer needed. |
| |
| This sample demonstrates all aspects of testing, requesting, and releasing network resources to |
| ensure a high-bandwidth network is available. In addition, the sample demonstrates the ideal user |
| experience for guiding the user through the process of acquiring a high-bandwidth network. |
| |
| To try all aspects of this sample, ensure that you have removed all saved Wi-Fi networks from your |
| Wear device and that it is unplugged, as Wear devices may prefer high-bandwidth networks by default |
| while plugged-in. Also, you may wish to put your phone in airplane mode or turn off Bluetooth to |
| simulate the Wear device running standalone. |
| |
| [1]: https://developer.android.com/reference/android/net/ConnectivityManager.html |
| ]]> |
| </intro> |
| </metadata> |
| </sample> |