MainActivity.java

-----------------------------

package com.example.tomi.myapplication;

import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.NavigationView;
import android.support.design.widget.Snackbar;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity
        implements NavigationView.OnNavigationItemSelectedListener {
    Context context = this;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //this.getActionBar().setTitle("www.smb.ac.id");

        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                        .setAction("Action", null).show();
            }
        });

        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
                this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
        drawer.setDrawerListener(toggle);
        toggle.syncState();

        NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
        navigationView.setNavigationItemSelectedListener(this);
    }

    @Override
    public void onBackPressed() {
        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        if (drawer.isDrawerOpen(GravityCompat.START)) {
            drawer.closeDrawer(GravityCompat.START);
        } else {
            super.onBackPressed();
        }
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menumain, 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();

        //noinspection SimplifiableIfStatement
        if (item.getItemId() == R.id.about) {
            startActivity(new Intent(this,Pengaturan.class));
        } else if (item.getItemId() == R.id.setting) {
            startActivity(new Intent(this, Pengaturan.class));
        } else if (item.getItemId() == R.id.help) {
            startActivity(new Intent(this, Pengaturan.class));
        }
        return super.onOptionsItemSelected(item);
    }

    @SuppressWarnings("StatementWithEmptyBody")
    @Override
    public boolean onNavigationItemSelected(MenuItem item) {
        // Handle navigation view item clicks here.
        int id = item.getItemId();
        if (id == R.id.apl) {
            startActivity(new Intent(this,Bluetooth.class));
        }
        else if (id == R.id.lf) {
            startActivity(new Intent(this,Pengaturan.class));
        }
        else if (id == R.id.ra) {
            startActivity(new Intent(this,Pengaturan.class));
        }
       else if (id == R.id.arm) {
            startActivity(new Intent(this,Pengaturan.class));
        }
        else if (id == R.id.laman) {
            startActivity(new Intent(this,Website.class));
        }
        else if (id == R.id.profile) {
            startActivity(new Intent(this,Pengaturan.class));
        } else if (id == R.id.kontak) {
            startActivity(new Intent(this,Pengaturan.class));
        } else if (id == R.id.tutorial) {
            startActivity(new Intent(this,Pengaturan.class));
        } else if (id == R.id.tentang) {
            startActivity(new Intent(this,Pengaturan.class));
        } else if (id == R.id.panduan) {
            startActivity(new Intent(this,Pengaturan.class));
        } else if (id == R.id.nav_share) {
            startActivity(new Intent(this,Pengaturan.class));
        }
        else if (id == R.id.nav_send) {
            startActivity(new Intent(this,Pengaturan.class));
        }
        else if (id == R.id.exit) {
            AlertDialog.Builder builder = new AlertDialog.Builder(context);
            builder.setTitle("Konfirmasi..");
            builder.setMessage("Yakin Anda Ingin Keluar.?");
            // Membuat tombol negativ
            builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {

                }
            });
            //Membuat tombol positif
            builder.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    // Bila pilih ok, maka muncul toast
                    Toast.makeText(getApplicationContext(), "Anda Memilih Keluar Dari Aplikasi", Toast.LENGTH_SHORT).show();
                    MainActivity.this.finish();
                }
            });
            builder.show();
        }
        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        drawer.closeDrawer(GravityCompat.START);
        return true;
    }


}
--------------------------------------------------------
menu

menu_main_draw.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">

    <group android:checkableBehavior="single">
        <item android:title="Aplikasi">
            <menu>
                <item
                    android:id="@+id/apl"
                    android:icon="@drawable/ic_menu_send"
                    android:title="Remot Corntrol Robotic" />
                <item
                    android:id="@+id/lf"
                    android:icon="@drawable/ic_menu_send"
                    android:title="Line Folower" />
                <item
                    android:id="@+id/ra"
                    android:icon="@drawable/ic_menu_send"
                    android:title="Robot Avoider" />
                <item
                    android:id="@+id/arm"
                    android:icon="@drawable/ic_menu_send"
                    android:title="Robot ARM" />
                <item
                    android:id="@+id/laman"
                    android:icon="@mipmap/rk"
                    android:title="Website Kampus" />

            </menu>
        </item>
        <item
            android:id="@+id/profile"
            android:icon="@android:drawable/ic_menu_myplaces"
            android:title="My Profile" />
        <item
            android:id="@+id/kontak"
            android:icon="@android:drawable/sym_action_call"
            android:title="Kontak" />
        <item
            android:id="@+id/tutorial"
            android:icon="?android:attr/actionModeCopyDrawable"
            android:title="Tutorial" />
        <item
            android:id="@+id/tentang"
            android:icon="@android:drawable/ic_menu_sort_by_size"
            android:title="Tentang Aplikasi" />
        <item
            android:id="@+id/panduan"
            android:icon="@drawable/ic_menu_manage"
            android:title="Panduan" />
    </group>

    <item android:title="Lainya">
        <menu>
            <item
                android:id="@+id/nav_share"
                android:icon="@drawable/ic_menu_share"
                android:title="Share" />
            <item
                android:id="@+id/nav_send"
                android:icon="@drawable/ic_menu_send"
                android:title="Send" />

            <item
                android:id="@+id/exit"
                android:icon="@drawable/ic_menu_send"
                android:title="Tutup Aplikasi" />
        </menu>
    </item>

</menu>
------------------------------------
Bluetooth.java

package com.example.tomi.myapplication;


import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ImageButton;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

import java.util.ArrayList;
import java.util.Set;

public class Bluetooth extends AppCompatActivity
{
    Context context = this;

    //widgets
    ImageButton btnPaired,btnback;
    ListView devicelist;
    //Bluetooth
    private BluetoothAdapter myBluetooth = null;
    private Set<BluetoothDevice> pairedDevices;
    public static String EXTRA_ADDRESS = "device_address";

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_bluetooth);

        this.getSupportActionBar().setTitle("Koneksi Bluetooth");

        ActionBar menu = getSupportActionBar();
        menu.setDisplayShowHomeEnabled(true);
        menu.setDisplayHomeAsUpEnabled(true);

        //Calling widgets
        btnPaired = (ImageButton) findViewById(R.id.imageButton2);

        devicelist = (ListView)findViewById(R.id.Listview);

        btnback = (ImageButton) findViewById(R.id.imageButton);
        btnback.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                AlertDialog.Builder builder = new AlertDialog.Builder(context);
                builder.setTitle("Konfirmasi..");
                builder.setMessage("Yakin Anda Ingin Kembali.?");
                // Membuat tombol negativ
                builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {

                    }
                });
                //Membuat tombol positif
                builder.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        // Bila pilih ok, maka muncul toast
                        Toast.makeText(getApplicationContext(), "Anda Memilih Kembali", Toast.LENGTH_SHORT).show();
                        Bluetooth.this.finish();
                    }
                });
                builder.show();
            }

        });


        //if the device has bluetooth
        myBluetooth = BluetoothAdapter.getDefaultAdapter();

        if(myBluetooth == null)
        {
            //Show a mensag. that the device has no bluetooth adapter
            Toast.makeText(getApplicationContext(), "Bluetooth Device Not Available", Toast.LENGTH_LONG).show();

            //finish apk
            finish();
        }
        else if(!myBluetooth.isEnabled())
        {
            //Ask to the user turn the bluetooth on
            Intent turnBTon = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
            startActivityForResult(turnBTon,1);
        }

        btnPaired.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v)
            {
                pairedDevicesList();
            }
        });


    }

    private void pairedDevicesList()
    {
        pairedDevices = myBluetooth.getBondedDevices();
        ArrayList list = new ArrayList();

        if (pairedDevices.size()>0)
        {
            for(BluetoothDevice bt : pairedDevices)
            {
                list.add(bt.getName() + "\n" + bt.getAddress()); //Get the device's name and the address
            }
        }
        else
        {
            Toast.makeText(getApplicationContext(), "No Paired Bluetooth Devices Found.", Toast.LENGTH_LONG).show();
        }

        final ArrayAdapter adapter = new ArrayAdapter(this,android.R.layout.simple_list_item_1, list);
        devicelist.setAdapter(adapter);
        devicelist.setOnItemClickListener(myListClickListener); //Method called when the device from the list is clicked

    }

    private AdapterView.OnItemClickListener myListClickListener = new AdapterView.OnItemClickListener()
    {
        public void onItemClick (AdapterView<?> av, View v, int arg2, long arg3)
        {
            // Get the device MAC address, the last 17 chars in the View
            String info = ((TextView) v).getText().toString();
            String address = info.substring(info.length() - 17);

            // Make an intent to start next activity.
            Intent i = new Intent(Bluetooth.this,Remote.class);

            //Change the activity.
            i.putExtra(EXTRA_ADDRESS, address); //this will be received at ledControl (class) Activity
            startActivity(i);
        }
    };


    @Override
    public boolean onCreateOptionsMenu(Menu menu)
    {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_device_list, 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();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }



        return super.onOptionsItemSelected(item);
    }

}

-----------------------

Remote.java

package com.example.tomi.myapplication;

import android.app.ProgressDialog;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothSocket;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.PopupMenu;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.Toast;

import java.io.IOException;
import java.util.UUID;

public class Remote extends AppCompatActivity {
    Context context = this;
    ImageButton maju,mundur,kiri,kanan,berhenti,kembali,onoff,line;
    Button t;
    String address = null;
    private ProgressDialog progress;
    BluetoothAdapter myBluetooth = null;
    BluetoothSocket btSocket = null;
    private boolean isBtConnected = false;
    //SPP UUID. Look for it
    static final UUID myUUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        Intent newint = getIntent();
        address = newint.getStringExtra(Bluetooth.EXTRA_ADDRESS); //receive the address of the bluetooth device

        setContentView(R.layout.activity_remote);

        new ConnectBT().execute(); //Call the class to connect

        ActionBar menu = getSupportActionBar();
        menu.setDisplayShowHomeEnabled(true);
        menu.setDisplayHomeAsUpEnabled(true);
        t=(Button) findViewById(R.id.bt);
        maju = (ImageButton) findViewById(R.id.imageButton4);
        maju.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                if (event.getAction() == MotionEvent.ACTION_MOVE)
                {
                    maju();
                    t.setText("MAJU");
                }

                if (event.getAction() == MotionEvent.ACTION_UP)
                {
                    berhenti();
                    t.setText("");
                }

                return false;
            }
        });

        mundur=(ImageButton) findViewById(R.id.imageButton5);
        mundur.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                if(event.getAction()==MotionEvent.ACTION_MOVE)
                {
                    mundur();
                    t.setText("MUNDUR");

                }
                if(event.getAction()==MotionEvent.ACTION_UP)
                {
                    berhenti();
                    t.setText("");
                }
                return false;
            }
        });

        kiri=(ImageButton) findViewById(R.id.imageButton6);
        kiri.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                if(event.getAction()==MotionEvent.ACTION_MOVE)
                {
                    kiri();
                    t.setText("BELOK KIRI");

                }
                if(event.getAction()==MotionEvent.ACTION_UP)
                {
                    berhenti();

                    t.setText("");
                }
                return false;
            }
        });

        kanan=(ImageButton) findViewById(R.id.imageButton7);
        kanan.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                if(event.getAction()==MotionEvent.ACTION_MOVE)
                {
                    kanan();
                    t.setText("BELOK KANAN");

                }
                if(event.getAction()==MotionEvent.ACTION_UP)
                {
                    berhenti();
                    t.setText("");
                }
                return false;
            }
        });

        berhenti=(ImageButton) findViewById(R.id.imageButton3);
        berhenti.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                berhenti();
                t.setText("BERHENTI");

            }
        });

        onoff=(ImageButton) findViewById(R.id.imageButton9);
        onoff.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                berhenti();
                PopupMenu popup = new PopupMenu(Remote.this,onoff);
                // Inflating menu using xml file
                popup.getMenuInflater().inflate(R.menu.remote, popup.getMenu());
                popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
                    @Override
                    public boolean onMenuItemClick(MenuItem item) {
                        if (item.getItemId() == R.id.of) {
                            stopline();
                            berhenti();
                            Disconnect();
                            Intent kem=new Intent(Remote.this,MainActivity.class);
                            Remote.this.startActivity(kem);
                            Remote.this.finish();
                        }
                        else if (item.getItemId() == R.id.stopline) {
                            stopline();
                            t.setText("BERHENTI");

                        }
                        return true;
                    }
                });
                popup.show();        //-------------------
            }
        });



        line=(ImageButton)findViewById(R.id.imageButton8);
        line.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                stopline();
                berhenti();
                t.setText("Reset Line Robot");
                PopupMenu popup = new PopupMenu(Remote.this,line);
                // Inflating menu using xml file
                popup.getMenuInflater().inflate(R.menu.menuline, popup.getMenu());

                popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
                    @Override
                    public boolean onMenuItemClick(MenuItem item) {
                        if (item.getItemId() == R.id.lineA) {
                            areaA();
                            t.setText("Robot Ke Line Area A");

                        }
                        else if (item.getItemId() == R.id.LineB) {
                            areaB();
                            t.setText("Robot Ke Line Area B");
                        }
                        else if (item.getItemId() == R.id.lineC) {
                            areaC();
                            t.setText("Robot Ke Line Area C");
                        }
                        else if (item.getItemId() == R.id.lineall) {
                            Toast.makeText(getApplicationContext(), "Maaf...Line Untuk Semua Area Belum Saya Buat..!.Tunggu Ya !", Toast.LENGTH_LONG).show();
                            //t.setText("Robot Ke Line Area A");
                        }
                        return true;
                    }
                });
                popup.show();        //-------------------
            }
        });

        kembali=(ImageButton) findViewById(R.id.imageButton10);
        kembali.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                AlertDialog.Builder builder = new AlertDialog.Builder(context);
                builder.setTitle("Konfirmasi..");
                builder.setMessage("Ke Halaman Awal.Yakin ?");
                // Membuat tombol negativ
                builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {

                    }
                });
                //Membuat tombol positif
                builder.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        // Bila pilih ok, maka muncul toast
                        Toast.makeText(getApplicationContext(), "Kembali Ke Halaman Awal", Toast.LENGTH_SHORT).show();
                        stopline();
                        berhenti();
                        Disconnect();
                        Intent kem=new Intent(Remote.this,MainActivity.class);
                        Remote.this.startActivity(kem);
                        Remote.this.finish();
                    }
                });
                builder.show();
            }

        });

//-----------------akhir set
    }

    private void Disconnect()
    {
        if (btSocket!=null) //If the btSocket is busy
        {
            try
            {
                berhenti();
                btSocket.close(); //close connection
            }
            catch (IOException e)
            { msg("Error");}
        }
        finish(); //return to the first layout

    }

    private void mundur()
    {
        if (btSocket!=null)
        {
            try
            {
                btSocket.getOutputStream().write("B".toString().getBytes());
            }
            catch (IOException e)
            {
                msg("Error");
            }
        }
    }

    private void maju()
    {
        if (btSocket!=null)
        {
            try
            {
                btSocket.getOutputStream().write("F".toString().getBytes());
            }
            catch (IOException e)
            {
                msg("Error");
            }
        }
    }

    //-------------
    private void kiri()
    {
        if (btSocket!=null)
        {
            try
            {
                btSocket.getOutputStream().write("L".toString().getBytes());
            }
            catch (IOException e)
            {
                msg("Error");
            }
        }
    }


    private void kanan()
    {
        if (btSocket!=null)
        {
            try
            {
                btSocket.getOutputStream().write("R".toString().getBytes());
            }
            catch (IOException e)
            {
                msg("Error");
            }
        }
    }


    private void berhenti()
    {
        if (btSocket!=null)
        {
            try
            {
                btSocket.getOutputStream().write("T".toString().getBytes());
            }
            catch (IOException e)
            {
                msg("Error");
            }
        }
    }

    private void stopline()
    {
        if (btSocket!=null)
        {
            try
            {
                btSocket.getOutputStream().write("7".toString().getBytes());
            }
            catch (IOException e)
            {
                msg("Error");
            }
        }
    }
    //--------------------------------LINE
    private void areaA()
    {
        if (btSocket!=null)
        {
            try
            {
                btSocket.getOutputStream().write("6".toString().getBytes());
            }
            catch (IOException e)
            {
                msg("Error");
            }
        }
    }
    private void areaB()
    {
        if (btSocket!=null)
        {
            try
            {
                btSocket.getOutputStream().write("8".toString().getBytes());
            }
            catch (IOException e)
            {
                msg("Error");
            }
        }
    }
    private void areaC()
    {
        if (btSocket!=null)
        {
            try
            {
                btSocket.getOutputStream().write("9".toString().getBytes());
            }
            catch (IOException e)
            {
                msg("Error");
            }
        }
    }
    // fast way to call Toast
    private void msg(String s)
    {
        Toast.makeText(getApplicationContext(),s, Toast.LENGTH_LONG).show();
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.remote, 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();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        else if (item.getItemId() == R.id.about) {
            startActivity(new Intent(this,Pengaturan.class));
        }
        else if (item.getItemId() == R.id.setting) {
            startActivity(new Intent(this, Pengaturan.class));
        }
        else if (item.getItemId() == R.id.help) {
            startActivity(new Intent(this, Bantuan.class));
        }


        return super.onOptionsItemSelected(item);
    }

    private class ConnectBT extends AsyncTask<Void, Void, Void>  // UI thread
    {
        private boolean ConnectSuccess = true; //if it's here, it's almost connected

        @Override
        protected void onPreExecute()
        {
            progress = ProgressDialog.show(Remote.this, "Connecting...", "Please wait!!!");  //show a progress dialog
        }

        @Override
        protected Void doInBackground(Void... devices) //while the progress dialog is shown, the connection is done in background
        {
            try
            {
                if (btSocket == null || !isBtConnected)
                {
                    myBluetooth = BluetoothAdapter.getDefaultAdapter();//get the mobile bluetooth device
                    BluetoothDevice dispositivo = myBluetooth.getRemoteDevice(address);//connects to the device's address and checks if it's available
                    btSocket = dispositivo.createInsecureRfcommSocketToServiceRecord(myUUID);//create a RFCOMM (SPP) connection
                    BluetoothAdapter.getDefaultAdapter().cancelDiscovery();
                    btSocket.connect();//start connection
                }
            }
            catch (IOException e)
            {
                ConnectSuccess = false;//if the try failed, you can check the exception here
            }
            return null;
        }
        @Override
        protected void onPostExecute(Void result) //after the doInBackground, it checks if everything went fine
        {
            super.onPostExecute(result);

            if (!ConnectSuccess)
            {
                msg("Connection Failed. Is it a SPP Bluetooth? Try again.");
                finish();
            }
            else
            {
                msg("Connected.");
                isBtConnected = true;
            }
            progress.dismiss();
        }
    }

}
-----------------------------------------------

menuline.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <item
        android:id="@+id/lineA"
        android:title="Line Area Kerja A"
        app:showAsAction="never"/>

    <item
        android:id="@+id/LineB"
        android:title="Line Area Kerja B"
        app:showAsAction="never" />

    <item
        android:id="@+id/lineC"
        android:title="Line Area Kerja C"
        app:showAsAction="never"/>

    <item
        android:id="@+id/lineall"
        android:title="Semua Line Area Kerja"
        app:showAsAction="never"/>

</menu>
--------------------------------------------
Manifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.tomi.myapplication">

    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
    <uses-permission android:name="android.permission.BLUETOOTH" />
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ikon"
        android:label="Remote Control Robotic"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity
            android:name=".MainActivity"
            android:label="Remot Kontrol"
            android:theme="@style/AppTheme.NoActionBar">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".Pengaturan" />
        <activity android:name=".Bantuan" />
        <activity android:name=".Tentang" />
        <activity android:name=".Bluetooth" />
        <activity android:name=".Remote" />
        <activity android:name=".Website"></activity>
    </application>

</manifest>
--------------------------------
Website.java

package com.example.tomi.myapplication;

import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.webkit.WebChromeClient;
import android.webkit.WebResourceError;
import android.webkit.WebResourceRequest;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class Website extends AppCompatActivity implements SwipeRefreshLayout.OnRefreshListener {

    SwipeRefreshLayout swipeRefreshLayout;
    WebView webView;
    WebSettings webSettings;

    String URL = "https://smbbatam.blogspot.com/?m=1";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_website);

        swipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.swipe_refresh);
        webView = (WebView) findViewById(R.id.web_view);

        swipeRefreshLayout.setOnRefreshListener(this);

        webSettings = webView.getSettings();
        webSettings.setJavaScriptEnabled(true); // Untuk mengaktifkan javascript
        webSettings.getUseWideViewPort();

        webView.setWebChromeClient(new WebChromeClient() {
            @Override
            public void onProgressChanged(WebView view, int newProgress) {
                // Menampilkan loading ketika webview proses load halaman
                swipeRefreshLayout.setRefreshing(true);
            }
        });

        webView.setWebViewClient(new WebViewClient(){
            // Ketika webview error atau selesai load page loading akan dismiss

            @Override
            public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
                swipeRefreshLayout.setRefreshing(false);
            }

            @Override
            public void onPageFinished(WebView view, String url) {
                swipeRefreshLayout.setRefreshing(false);
            }
        });

        webView.loadUrl(URL);

    }

    @Override
    public void onRefresh() {
        // Untuk refresh webview dengan swipe
        webView.reload();
    }

    @Override
    public void onBackPressed() {
        // Jika Webview bisa di back maka backward page sebelumnya
        if (webView.canGoBack()) {
            webView.goBack();
        } else {
            finish();
            System.exit(0);
        }
    }
}
---------------------------------------