Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.example.flic2;
- import android.Manifest;
- import android.content.pm.PackageManager;
- import android.os.Build;
- import android.os.Bundle;
- import com.google.android.material.floatingactionbutton.FloatingActionButton;
- import com.google.android.material.snackbar.Snackbar;
- import androidx.annotation.NonNull;
- import androidx.appcompat.app.AppCompatActivity;
- import androidx.appcompat.widget.Toolbar;
- import androidx.core.content.ContextCompat;
- import android.os.Handler;
- import android.view.View;
- import android.view.Menu;
- import android.view.MenuItem;
- import android.widget.Toast;
- import io.flic.flic2libandroid.Flic2Button;
- import io.flic.flic2libandroid.Flic2Manager;
- import io.flic.flic2libandroid.Flic2ScanCallback;
- public class MainActivity extends AppCompatActivity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- Toolbar toolbar = findViewById(R.id.toolbar);
- setSupportActionBar(toolbar);
- // Initialize the Flic2 manager to run on the same thread as the current thread (the main thread)
- Flic2Manager manager = Flic2Manager.initAndGetInstance(getApplicationContext(), new Handler());
- FloatingActionButton fab = findViewById(R.id.fab);
- fab.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- scanFlicButton();
- }
- });
- }
- @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_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();
- //noinspection SimplifiableIfStatement
- if (id == R.id.action_settings) {
- return true;
- }
- return super.onOptionsItemSelected(item);
- }
- public void scanFlicButton(){
- int permissionCheck = ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION);
- if (permissionCheck != PackageManager.PERMISSION_GRANTED) {
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
- requestPermissions(new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, 1);
- }
- return;
- }
- System.out.println("Searching....");
- Flic2Manager.getInstance().startScan(new Flic2ScanCallback() {
- @Override
- public void onDiscoveredAlreadyPairedButton(Flic2Button button) {
- System.out.println("FOUND");
- // Found an already paired button. Try another button.
- }
- @Override
- public void onDiscovered(String bdAddr) {
- // Found Flic2, now connecting...
- System.out.println("DISCOVER");
- }
- @Override
- public void onConnected() {
- // Connected. Now pairing...
- System.out.println("Connected");
- }
- @Override
- public void onComplete(int result, int subCode, Flic2Button button) {
- if (result == Flic2ScanCallback.RESULT_SUCCESS) {
- // Success!
- // The button object can now be used
- System.out.println("Complete");
- } else {
- // Failed
- System.out.println("Fail: " + result + " " + subCode);
- }
- }
- });
- }
- @Override
- public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
- if (requestCode == 1) {
- if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
- // now startScan can be safely called
- } else {
- Toast.makeText(getApplicationContext(), "Scanning needs Location permission, which you have rejected", Toast.LENGTH_SHORT).show();
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement