All Projects → DeveloperPaul123 → Simplebluetoothlibrary

DeveloperPaul123 / Simplebluetoothlibrary

Licence: apache-2.0
Android library for simplifying bluetooth usage.

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Simplebluetoothlibrary

Androidbluetoothlibrary
A Library for easy implementation of Serial Bluetooth Classic and Low Energy on Android. 💙
Stars: ✭ 171 (+30.53%)
Mutual labels:  hacktoberfest, bluetooth
Zmk
ZMK Firmware Repository
Stars: ✭ 269 (+105.34%)
Mutual labels:  hacktoberfest, bluetooth
Smoke
💨 Simple yet powerful file-based mock server with recording abilities
Stars: ✭ 142 (+8.4%)
Mutual labels:  hacktoberfest, simple
Beginners C Program Examples
Simple, Short and Sweet beginners friendly C language programs
Stars: ✭ 138 (+5.34%)
Mutual labels:  hacktoberfest, simple
Fossurl
Your Own Url Shortner Without any fancy server side processing and support for custom url , which can even be hosted on GitHub Pages
Stars: ✭ 131 (+0%)
Mutual labels:  hacktoberfest, simple
Discord bot.py
🍺 A simple discord bot that helps you getting started within discord.py
Stars: ✭ 313 (+138.93%)
Mutual labels:  hacktoberfest, simple
Redaxo
REDAXO, a PHP-based CMS since 2004. Both simple and flexible.
Stars: ✭ 268 (+104.58%)
Mutual labels:  hacktoberfest, simple
Room Assistant
Presence tracking and more for automation on the room-level
Stars: ✭ 764 (+483.21%)
Mutual labels:  hacktoberfest, bluetooth
Super Simple Raspberry Pi Audio Receiver Install
Super Easy installation to make your Raspberry Pi an Audio Receiver
Stars: ✭ 448 (+241.98%)
Mutual labels:  hacktoberfest, bluetooth
32feet
Personal Area Networking for .NET
Stars: ✭ 395 (+201.53%)
Mutual labels:  hacktoberfest, bluetooth
Water.css
A drop-in collection of CSS styles to make simple websites just a little nicer
Stars: ✭ 6,666 (+4988.55%)
Mutual labels:  hacktoberfest, simple
Sharedchamber
Android Secure SharedPreferences Using Facebook Conceal Encryption
Stars: ✭ 96 (-26.72%)
Mutual labels:  hacktoberfest, simple
Cicerone
🏛️ Give tours of your Shiny apps
Stars: ✭ 131 (+0%)
Mutual labels:  hacktoberfest
Zebrunner
Zebrunner is a Test Automation Management Tool
Stars: ✭ 131 (+0%)
Mutual labels:  hacktoberfest
Skip Silence
🔇 Chrome extension to skip silent parts in videos and audio files on any webpage
Stars: ✭ 130 (-0.76%)
Mutual labels:  hacktoberfest
Amplitude Android
Native Android SDK for Amplitude
Stars: ✭ 129 (-1.53%)
Mutual labels:  hacktoberfest
Health
Laravel Health Panel
Stars: ✭ 1,774 (+1254.2%)
Mutual labels:  hacktoberfest
Showmethexaml
A WPF component making it easy to show the corresponding XAML for WPF custom styles and controls
Stars: ✭ 130 (-0.76%)
Mutual labels:  hacktoberfest
Yii2 Twig
Yii 2 Twig extension.
Stars: ✭ 130 (-0.76%)
Mutual labels:  hacktoberfest
Easy Build
Collection of Dockerfiles for building embedded software distributions
Stars: ✭ 130 (-0.76%)
Mutual labels:  hacktoberfest

SimpleBluetoothLibrary

Android Arsenal

Description

This library makes it easy for you to implement bluetooth in your Android app. The SimpleBlueooth class handles all the hard work for you and all you have to do is make a few method calls.

Dependency

repositories {
    ....
    maven {url "https://jitpack.io"}
}
dependencies {
    ....
    compile  'com.github.DeveloperPaul123:SimpleBluetoothLibrary:1.5.1'
}

Requirements

Min SDK Level is 14 or Android IceCreamSandwich

Usage

This library provides a BaseBluetoothActivity that you inherit from to easily take care of:

  • Enabling bluetooth
  • Scanning for new devices.
  • Connecting to a device.
  • Receiving data from the device.
  • Sending data to the device.

As an example:

public class TestActivity extends BaseBluetoothActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //set your content view here. 
    }

    @Override
    public void onBluetoothEnabled() {
        super.onBluetoothEnabled();
        //this is always called, when bluetooth is enabled.
        //by default the activity will start a scan. If you don't want this
        //delete the super call. 
    }

    @Override
    public void onDeviceSelected(String macAddress) {
        super.onDeviceSelected(macAddress);
        //this is called when a device is selected from the scan activity. By default,
        //the selected device will be connected to. If you don't want this, delete the super call.
    }

    @Override
    public void onBluetoothDataReceived(byte[] bytes, String data) {
       //called when data is received from the device. 
    }

    @Override
    public void onDeviceConnected(BluetoothDevice device) {

    }

    @Override
    public void onDeviceDisconnected(BluetoothDevice device) {

    }

    @Override
    public void onDiscoveryStarted() {

    }

    @Override
    public void onDiscoveryFinished() {

    }
}

Alternatively you can use the SimpleBluetooth class yourself:

public class MainActivity extends Activity {

    private SimpleBluetooth simpleBluetooth;
    private static final int SCAN_REQUEST = 119;
    private static final int CHOOSE_SERVER_REQUEST = 120;
    //...other code....//
    private String curMacAddress;

    @Override
    protected void onResume() {
        super.onResume();
        simpleBluetooth = new SimpleBluetooth(this, new SimpleBluetoothListener() {

            @Override
            public void onBluetoothDataReceived(byte[] bytes, String data) {
                //read the data coming in.
            }

            @Override
            public void onDeviceConnected(BluetoothDevice device) {
                //a device is connected so you can now send stuff to it
                
            }

            @Override
            public void onDeviceDisconnected(BluetoothDevice device) {
                // device was disconnected so connect it again?
               
            }

            @Override
            public void onDiscoveryStarted() {

            }

            @Override
            public void onDiscoveryFinished() {

            }
        });
        simpleBluetooth.initializeSimpleBluetooth();
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //...other code...//
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        } else if (id == R.id.scan) {
            simpleBluetooth.scan(SCAN_REQUEST);
            return true;
        }
        return super.onOptionsItemSelected(item);
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if(requestCode == SCAN_REQUEST || requestCode == CHOOSE_SERVER_REQUEST) {

            if(resultCode == RESULT_OK) {

                curMacAddress = data.getStringExtra(DeviceDialog.DEVICE_DIALOG_DEVICE_ADDRESS_EXTRA);
                if(requestCode == SCAN_REQUEST) {
                    simpleBluetooth.connectToBluetoothDevice(curMacAddress);
                } else {
                    simpleBluetooth.connectToBluetoothServer(curMacAddress);
                }

            }
        }
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        simpleBluetooth.endSimpleBluetooth();
    }
}

Finally, the library allows for an alternative way to receive data. Say you're using an Arduino or something similar that is sending out a newline character at the end of every loop. You can read this data using a buffered input type through the following line:

simpleBluetooth.setInputStreamType(BluetoothUtility.InputStreamType.BUFFERED);

This will case the input type to change and you should receieve the data line by line.

Additionally, this library allows for the creation and connection to a bluetooth server. Simply call:

simpleBluetooth.createBluetoothServerConnection();

and on the connecting device call:

//curMacAddress is the address of the server device.
simpleBluetooth.connectToBluetoothServer(curMacAddress);

Finally, the library can handle A2DP protocols, although this has not yet been tested.

Developed By

Paul T

Credit to afollestad for his material-dialog library

License

Copyright 2014 - 2017 Paul T

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].