Autore Topic: ricerca avviata ma nulla in lista  (Letto 369 volte)

Offline ruggieropietro

  • Nuovo arrivato
  • *
  • Post: 5
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    tablet
  • Sistema operativo:
    windows xp
ricerca avviata ma nulla in lista
« il: 23 Luglio 2016, 21:35:06 CEST »
0
cari developers,
vorrei chiedervi se qualcuno potrebbe dirmi cosa sto sbagliando nel  seguente,
l'obiettivo è quello di avere un tasto che attiva e disattiva bluetooth , il text che annuncia  se il bluetooth si spegne anche dall'esterno,e fin qui tutto bene,
poi iniziando a creare la lista e l'adapter per poter fare la ricerc e mettere in lista succede una cosa particolare,ovvero non vengono messi in lista i dispositivi durante la ricerca,

per ora carico solo la java, immagino che si possa risolvere da qui
Codice (Java): [Seleziona]
package com.ruggpruzz.pieste.bluetoothresearch;

import .app.Activity;
import .bluetooth.BluetoothAdapter;
import .bluetooth.BluetoothDevice;
import .bluetooth.le.BluetoothLeScanner;
import .content.BroadcastReceiver;
import .content.Context;
import .content.Intent;
import .content.IntentFilter;
import .support.v7.app.AppCompatActivity;
import .os.Bundle;
import .view.View;
import .widget.ArrayAdapter;
import .widget.Button;
import .widget.ListView;
import .widget.TextView;
import .widget.Toast;

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


public class MainActivity extends Activity {
//parti relative alla lista e alla ricerca
    private BluetoothAdapter mBluetoothAdapter ;
    private BluetoothAdapter btAdapter;
    private Set<BluetoothDevice> dispositivi ;
    private ListView lv  ;
    private ArrayAdapter<String> adapter =null;
    private static final int BLUETOOTH_ON=10;
//qui viene creato il broadcast receiver e inpostato per ascoltare il bluetooth e i suoi stati generalizzati
    private final BroadcastReceiver mBroadcastReceiver1 = new BroadcastReceiver() {

        @Override
        public void onReceive(Context context, Intent intent) {
            final String action = intent.getAction();
            TextView req = (TextView) findViewById(R.id.textView2);
            if (action.equals(BluetoothAdapter.ACTION_STATE_CHANGED)) {
                final int state = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, BluetoothAdapter.ERROR);
                //qui uno switch con le varie reazioni che si vuole dare a seconda di quello che sente il broadcast receiver
                switch(state) {
                    case BluetoothAdapter.STATE_OFF:
                        req.setText("Bluetooth disabled!");
                        break;
                    case BluetoothAdapter.STATE_TURNING_OFF:
                        req.setText("Bluetooth disabled!");
                        break;
                    case BluetoothAdapter.STATE_ON:
                        req.setText("Bluetooth abled!");
                        break;
                    case BluetoothAdapter.STATE_TURNING_ON:
                        req.setText("Bluetooth abled!");
                        break;
                }
            }
        }
    };
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
        btAdapter = BluetoothAdapter.getDefaultAdapter();;
        lv = (ListView)findViewById(R.id.listView);
        adapter=new  ArrayAdapter(this,.R.layout.list_content);
        lv.setAdapter(adapter);



        //qui nel onCreate la memorizzazione formale di stati precedenti per il controllo di cambio
        //degli stati
        IntentFilter filter1 = new IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED);
        registerReceiver(mBroadcastReceiver1, filter1);


        TextView tv = (TextView) findViewById(R.id.textView);
        TextView req = (TextView) findViewById(R.id.textView2);
        //qui il controllo con textView e toast riguardo la verifica di esistenza del bluetooth interno
        if (mBluetoothAdapter == null) {
            tv.setText("Internal Bluetooth not found!");
            Toast.makeText(MainActivity.this, "Internal bluetooth not found! ", Toast.LENGTH_LONG).show();
        } else {
            tv.setText("InternalBluetooth  found!");
            Toast.makeText(MainActivity.this, "Internal bluetooth found! ", Toast.LENGTH_LONG).show();
            if (!mBluetoothAdapter.isEnabled()) {
                mBluetoothAdapter.enable();
                req.setText("Bluetooth abled!");
            } else {
                mBluetoothAdapter.disable();
                req.setText("Bluetooth disabled!");
            }
        }
        //qui l'ascolto al tasto per abilitare o disabilitare il bluetooth dall'interno
        //dell'aplicazione
        Button btnHome=(Button)findViewById(R.id.button);
        btnHome.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View arg0) {
                BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
                TextView req = (TextView) findViewById(R.id.textView2);
                if (!mBluetoothAdapter.isEnabled()) {
                    mBluetoothAdapter.enable();
                    req.setText("Bluetooth abled");

                } else {
                    mBluetoothAdapter.disable();
                    req.setText("Bluetooth disabled");
                }
            }
        });
        }
//overide della finestra di dialogo per il bluetooth spento
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data)
    {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode==BLUETOOTH_ON && resultCode==RESULT_OK)
        {
            load();
        }
    }
//intent per la pressione del tasto scan
    public void scan(View v)
    {
        if (!btAdapter.isEnabled())
        {
            Intent turnOn = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
            startActivityForResult(turnOn, BLUETOOTH_ON);
        }
        else
            load();
    }
//raggiungimento del metodo per cercare e aggiungere elementi alla lista
    private void load()
    {
        dispositivi = btAdapter.getBondedDevices();
        adapter.clear();
        for(BluetoothDevice bt : dispositivi) {
            adapter.add(bt.getName());
        }
        Toast.makeText(MainActivity.this, "Start Research", Toast.LENGTH_LONG).show();
    }
    //qui la distruzione
    @Override
    protected void onDestroy() {
        super.onDestroy();
        unregisterReceiver(mBroadcastReceiver1);
    }

    }
« Ultima modifica: 23 Luglio 2016, 21:38:43 CEST da ruggieropietro, Reason: aggiunta piccole spiegazioni »