├── settings.gradle ├── screenshots ├── 3-chat.png ├── 1-launch.png ├── 2-devices.png └── icon-web.png ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── Application ├── src │ └── main │ │ ├── res │ │ ├── drawable-hdpi │ │ │ ├── tile.9.png │ │ │ ├── ic_launcher.png │ │ │ └── ic_action_device_access_bluetooth_searching.png │ │ ├── drawable-mdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_action_device_access_bluetooth_searching.png │ │ ├── drawable-xhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_action_device_access_bluetooth_searching.png │ │ ├── drawable-xxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_action_device_access_bluetooth_searching.png │ │ ├── values-v21 │ │ │ ├── base-colors.xml │ │ │ └── base-template-styles.xml │ │ ├── values │ │ │ ├── fragmentview_strings.xml │ │ │ ├── template-dimens.xml │ │ │ ├── base-strings.xml │ │ │ ├── template-styles.xml │ │ │ └── strings.xml │ │ ├── values-v11 │ │ │ └── template-styles.xml │ │ ├── values-sw600dp │ │ │ ├── template-dimens.xml │ │ │ └── template-styles.xml │ │ ├── layout │ │ │ ├── device_name.xml │ │ │ ├── message.xml │ │ │ ├── fragment_bluetooth_chat.xml │ │ │ ├── activity_device_list.xml │ │ │ └── activity_main.xml │ │ ├── menu │ │ │ ├── main.xml │ │ │ └── bluetooth_chat.xml │ │ └── layout-w720dp │ │ │ └── activity_main.xml │ │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── android │ │ │ ├── bluetoothchat │ │ │ ├── Constants.java │ │ │ ├── MainActivity.java │ │ │ ├── DeviceListActivity.java │ │ │ ├── BluetoothChatFragment.java │ │ │ └── BluetoothChatService.java │ │ │ └── common │ │ │ ├── activities │ │ │ └── SampleActivityBase.java │ │ │ └── logger │ │ │ ├── LogNode.java │ │ │ ├── MessageOnlyLogFilter.java │ │ │ ├── LogWrapper.java │ │ │ ├── LogFragment.java │ │ │ ├── LogView.java │ │ │ └── Log.java │ │ └── AndroidManifest.xml └── build.gradle ├── README.md ├── .google └── packaging.yaml ├── CONTRIBUTING.md ├── CONTRIB.md ├── gradlew.bat ├── gradlew └── LICENSE /settings.gradle: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | include 'Application' 5 | -------------------------------------------------------------------------------- /screenshots/3-chat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/android-BluetoothChat/master/screenshots/3-chat.png -------------------------------------------------------------------------------- /screenshots/1-launch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/android-BluetoothChat/master/screenshots/1-launch.png -------------------------------------------------------------------------------- /screenshots/2-devices.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/android-BluetoothChat/master/screenshots/2-devices.png -------------------------------------------------------------------------------- /screenshots/icon-web.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/android-BluetoothChat/master/screenshots/icon-web.png -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/android-BluetoothChat/master/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /Application/src/main/res/drawable-hdpi/tile.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/android-BluetoothChat/master/Application/src/main/res/drawable-hdpi/tile.9.png -------------------------------------------------------------------------------- /Application/src/main/res/drawable-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/android-BluetoothChat/master/Application/src/main/res/drawable-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /Application/src/main/res/drawable-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/android-BluetoothChat/master/Application/src/main/res/drawable-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /Application/src/main/res/drawable-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/android-BluetoothChat/master/Application/src/main/res/drawable-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /Application/src/main/res/drawable-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/android-BluetoothChat/master/Application/src/main/res/drawable-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /Application/src/main/res/drawable-hdpi/ic_action_device_access_bluetooth_searching.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/android-BluetoothChat/master/Application/src/main/res/drawable-hdpi/ic_action_device_access_bluetooth_searching.png -------------------------------------------------------------------------------- /Application/src/main/res/drawable-mdpi/ic_action_device_access_bluetooth_searching.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/android-BluetoothChat/master/Application/src/main/res/drawable-mdpi/ic_action_device_access_bluetooth_searching.png -------------------------------------------------------------------------------- /Application/src/main/res/drawable-xhdpi/ic_action_device_access_bluetooth_searching.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/android-BluetoothChat/master/Application/src/main/res/drawable-xhdpi/ic_action_device_access_bluetooth_searching.png -------------------------------------------------------------------------------- /Application/src/main/res/drawable-xxhdpi/ic_action_device_access_bluetooth_searching.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/android-BluetoothChat/master/Application/src/main/res/drawable-xxhdpi/ic_action_device_access_bluetooth_searching.png -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | Android BluetoothChat Sample 3 | ============================ 4 | 5 | This repo has been migrated to [github.com/android/connectivity][1]. Please check that repo for future updates. Thank you! 6 | 7 | [1]: https://github.com/android/connectivity 8 | 9 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Wed Apr 10 15:27:10 PDT 2013 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip -------------------------------------------------------------------------------- /.google/packaging.yaml: -------------------------------------------------------------------------------- 1 | 2 | # GOOGLE SAMPLE PACKAGING DATA 3 | # 4 | # This file is used by Google as part of our samples packaging process. 5 | # End users may safely ignore this file. It has no relevance to other systems. 6 | --- 7 | status: PUBLISHED 8 | technologies: [Android] 9 | categories: [Connectivity] 10 | languages: [Java] 11 | solutions: [Mobile] 12 | github: android-BluetoothChat 13 | level: ADVANCED 14 | icon: screenshots/icon-web.png 15 | apiRefs: 16 | - android:android.bluetooth.BluetoothAdapter 17 | - android:android.bluetooth.BluetoothDevice 18 | - android:android.bluetooth.BluetoothServerSocket 19 | - android:android.bluetooth.BluetoothSocket 20 | license: apache2 21 | -------------------------------------------------------------------------------- /Application/src/main/res/values-v21/base-colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /Application/src/main/res/values/fragmentview_strings.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | Show Log 18 | Hide Log 19 | 20 | -------------------------------------------------------------------------------- /Application/src/main/res/values-v11/template-styles.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | 19 | 20 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /Application/src/main/res/values-sw600dp/template-dimens.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | 19 | 20 | 21 | @dimen/margin_huge 22 | @dimen/margin_medium 23 | 24 | 25 | -------------------------------------------------------------------------------- /Application/src/main/res/layout/device_name.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 22 | -------------------------------------------------------------------------------- /Application/src/main/res/layout/message.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 22 | -------------------------------------------------------------------------------- /Application/src/main/res/menu/main.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 20 | 23 | 24 | -------------------------------------------------------------------------------- /Application/src/main/res/values-sw600dp/template-styles.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | 19 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /Application/src/main/res/values/template-dimens.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | 19 | 20 | 21 | 4dp 22 | 8dp 23 | 16dp 24 | 32dp 25 | 64dp 26 | 27 | 28 | 29 | @dimen/margin_medium 30 | @dimen/margin_medium 31 | 32 | 33 | -------------------------------------------------------------------------------- /Application/src/main/res/menu/bluetooth_chat.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | 23 | 24 | 28 | 29 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /Application/src/main/java/com/example/android/bluetoothchat/Constants.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2014 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.example.android.bluetoothchat; 18 | 19 | /** 20 | * Defines several constants used between {@link BluetoothChatService} and the UI. 21 | */ 22 | public interface Constants { 23 | 24 | // Message types sent from the BluetoothChatService Handler 25 | public static final int MESSAGE_STATE_CHANGE = 1; 26 | public static final int MESSAGE_READ = 2; 27 | public static final int MESSAGE_WRITE = 3; 28 | public static final int MESSAGE_DEVICE_NAME = 4; 29 | public static final int MESSAGE_TOAST = 5; 30 | 31 | // Key names received from the BluetoothChatService Handler 32 | public static final String DEVICE_NAME = "device_name"; 33 | public static final String TOAST = "toast"; 34 | 35 | } 36 | -------------------------------------------------------------------------------- /Application/src/main/res/values/base-strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | BluetoothChat 20 | 21 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /Application/src/main/res/values/template-styles.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | 19 | 20 | 21 | 34 | 35 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /Application/build.gradle: -------------------------------------------------------------------------------- 1 | 2 | buildscript { 3 | repositories { 4 | jcenter() 5 | google() 6 | } 7 | 8 | dependencies { 9 | classpath 'com.android.tools.build:gradle:3.0.1' 10 | } 11 | } 12 | 13 | apply plugin: 'com.android.application' 14 | 15 | repositories { 16 | jcenter() 17 | google() 18 | } 19 | 20 | dependencies { 21 | compile "com.android.support:support-v4:27.0.2" 22 | compile "com.android.support:gridlayout-v7:27.0.2" 23 | compile "com.android.support:cardview-v7:27.0.2" 24 | compile "com.android.support:appcompat-v7:27.0.2" 25 | } 26 | 27 | // The sample build uses multiple directories to 28 | // keep boilerplate and common code separate from 29 | // the main sample code. 30 | List dirs = [ 31 | 'main', // main sample code; look here for the interesting stuff. 32 | 'common', // components that are reused by multiple samples 33 | 'template'] // boilerplate code that is generated by the sample template process 34 | 35 | android { 36 | compileSdkVersion 27 37 | 38 | buildToolsVersion "27.0.2" 39 | 40 | defaultConfig { 41 | minSdkVersion 11 42 | targetSdkVersion 27 43 | } 44 | 45 | compileOptions { 46 | sourceCompatibility JavaVersion.VERSION_1_7 47 | targetCompatibility JavaVersion.VERSION_1_7 48 | } 49 | 50 | sourceSets { 51 | main { 52 | dirs.each { dir -> 53 | java.srcDirs "src/${dir}/java" 54 | res.srcDirs "src/${dir}/res" 55 | } 56 | } 57 | androidTest.setRoot('tests') 58 | androidTest.java.srcDirs = ['tests/src'] 59 | 60 | } 61 | 62 | } 63 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # How to become a contributor and submit your own code 2 | 3 | ## Contributor License Agreements 4 | 5 | We'd love to accept your sample apps and patches! Before we can take them, we 6 | have to jump a couple of legal hurdles. 7 | 8 | Please fill out either the individual or corporate Contributor License Agreement (CLA). 9 | 10 | * If you are an individual writing original source code and you're sure you 11 | own the intellectual property, then you'll need to sign an [individual CLA] 12 | (https://cla.developers.google.com). 13 | * If you work for a company that wants to allow you to contribute your work, 14 | then you'll need to sign a [corporate CLA] 15 | (https://cla.developers.google.com). 16 | 17 | Follow either of the two links above to access the appropriate CLA and 18 | instructions for how to sign and return it. Once we receive it, we'll be able to 19 | accept your pull requests. 20 | 21 | ## Contributing A Patch 22 | 23 | 1. Submit an issue describing your proposed change to the repo in question. 24 | 1. The repo owner will respond to your issue promptly. 25 | 1. If your proposed change is accepted, and you haven't already done so, sign a 26 | Contributor License Agreement (see details above). 27 | 1. Fork the desired repo, develop and test your code changes. 28 | 1. Ensure that your code adheres to the existing style in the sample to which 29 | you are contributing. Refer to the 30 | [Android Code Style Guide] 31 | (https://source.android.com/source/code-style.html) for the 32 | recommended coding standards for this organization. 33 | 1. Ensure that your code has an appropriate set of unit tests which all pass. 34 | 1. Submit a pull request. 35 | 36 | -------------------------------------------------------------------------------- /CONTRIB.md: -------------------------------------------------------------------------------- 1 | # How to become a contributor and submit your own code 2 | 3 | ## Contributor License Agreements 4 | 5 | We'd love to accept your sample apps and patches! Before we can take them, we 6 | have to jump a couple of legal hurdles. 7 | 8 | Please fill out either the individual or corporate Contributor License Agreement (CLA). 9 | 10 | * If you are an individual writing original source code and you're sure you 11 | own the intellectual property, then you'll need to sign an [individual CLA] 12 | (https://developers.google.com/open-source/cla/individual). 13 | * If you work for a company that wants to allow you to contribute your work, 14 | then you'll need to sign a [corporate CLA] 15 | (https://developers.google.com/open-source/cla/corporate). 16 | 17 | Follow either of the two links above to access the appropriate CLA and 18 | instructions for how to sign and return it. Once we receive it, we'll be able to 19 | accept your pull requests. 20 | 21 | ## Contributing A Patch 22 | 23 | 1. Submit an issue describing your proposed change to the repo in question. 24 | 1. The repo owner will respond to your issue promptly. 25 | 1. If your proposed change is accepted, and you haven't already done so, sign a 26 | Contributor License Agreement (see details above). 27 | 1. Fork the desired repo, develop and test your code changes. 28 | 1. Ensure that your code adheres to the existing style in the sample to which 29 | you are contributing. Refer to the 30 | [Android Code Style Guide] 31 | (https://source.android.com/source/code-style.html) for the 32 | recommended coding standards for this organization. 33 | 1. Ensure that your code has an appropriate set of unit tests which all pass. 34 | 1. Submit a pull request. 35 | 36 | -------------------------------------------------------------------------------- /Application/src/main/java/com/example/android/common/activities/SampleActivityBase.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.example.android.common.activities; 18 | 19 | import android.os.Bundle; 20 | import android.support.v4.app.FragmentActivity; 21 | 22 | import com.example.android.common.logger.Log; 23 | import com.example.android.common.logger.LogWrapper; 24 | 25 | /** 26 | * Base launcher activity, to handle most of the common plumbing for samples. 27 | */ 28 | public class SampleActivityBase extends FragmentActivity { 29 | 30 | public static final String TAG = "SampleActivityBase"; 31 | 32 | @Override 33 | protected void onCreate(Bundle savedInstanceState) { 34 | super.onCreate(savedInstanceState); 35 | } 36 | 37 | @Override 38 | protected void onStart() { 39 | super.onStart(); 40 | initializeLogging(); 41 | } 42 | 43 | /** Set up targets to receive log data */ 44 | public void initializeLogging() { 45 | // Using Log, front-end to the logging chain, emulates android.util.log method signatures. 46 | // Wraps Android's native log framework 47 | LogWrapper logWrapper = new LogWrapper(); 48 | Log.setLogNode(logWrapper); 49 | 50 | Log.i(TAG, "Ready"); 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /Application/src/main/res/layout/fragment_bluetooth_chat.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 21 | 22 | 29 | 30 | 34 | 35 | 41 | 42 |