2017-09-01 20 views
0

私はこのtutorialに続いて、電話でLEDを点灯させます。 しかし、私は、このコードに誤りがあります。Androidスタジオで互換性のないタイプ

package com.irobotechart.controlbt; 

import android.bluetooth.BluetoothAdapter; 
import android.bluetooth.BluetoothDevice; 
import android.content.Intent; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.ArrayAdapter; 
import android.widget.ListView; 
import android.widget.TextView; 
import android.widget.Toast; 

import java.util.Set; 

public class DevicesBT extends AppCompatActivity { 

    //1) 
    // Depuración de LOGCAT 
    private static final String TAG = "DevicesBT"; //<-<- PARTE A MODIFICAR >->-> 
    // Declaracion de ListView 
    ListView IdLista; 
    // String que se enviara a la actividad principal, mainactivity 
    public static String EXTRA_DEVICE_ADDRESS = "device_address"; 

    // Declaracion de campos 
    private BluetoothAdapter mBtAdapter; 
    private ArrayAdapter mPairedDevicesArrayAdapter; 

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

    @Override 
    public void onResume() 
    { 
     super.onResume(); 
     //--------------------------------- 
     VerificarEstadoBT(); 

     // Inicializa la array que contendra la lista de los dispositivos bluetooth vinculados 
     mPairedDevicesArrayAdapter = new ArrayAdapter(this, R.layout.name_devices);//<-<- PARTE A MODIFICAR >->-> 
     // Presenta los disposisitivos vinculados en el ListView 
     IdLista = (ListView) findViewById(R.id.IdList); 
     IdLista.setAdapter(mPairedDevicesArrayAdapter); 
     IdLista.setOnItemClickListener(mDeviceClickListener); 
     // Obtiene el adaptador local Bluetooth adapter 
     mBtAdapter = BluetoothAdapter.getDefaultAdapter(); 
     // Obtiene un conjunto de dispositivos actualmente emparejados y agregua a 'pairedDevices' 
     Set pairedDevices = mBtAdapter.getBondedDevices(); 
     // Adiciona un dispositivos previo emparejado al array 
     if (pairedDevices.size() > 0) 
     { 
      for (BluetoothDevice device : pairedDevices) { 
       mPairedDevicesArrayAdapter.add(device.getName() + "\n" + device.getAddress()); 
      } 
     } 
    } 

    // Configura un (on-click) para la lista 
    private AdapterView.OnItemClickListener mDeviceClickListener = new AdapterView.OnItemClickListener() { 
     public void onItemClick(AdapterView av, View v, int arg2, long arg3) { 

      // Obtener la dirección MAC del dispositivo, que son los últimos 17 caracteres en la vista 
      String info = ((TextView) v).getText().toString(); 
      String address = info.substring(info.length() - 17); 

      // Realiza un intent para iniciar la siguiente actividad 
      // mientras toma un EXTRA_DEVICE_ADDRESS que es la dirección MAC. 
      Intent i = new Intent(DevicesBT.this, UserInterface.class);//<-<- PARTE A MODIFICAR >->-> 
      i.putExtra(EXTRA_DEVICE_ADDRESS, address); 
      startActivity(i); 
     } 
    }; 

    private void VerificarEstadoBT() { 
     // Comprueba que el dispositivo tiene Bluetooth y que está encendido. 
     mBtAdapter= BluetoothAdapter.getDefaultAdapter(); 
     if(mBtAdapter==null) { 
      Toast.makeText(getBaseContext(), "El dispositivo no soporta Bluetooth", Toast.LENGTH_SHORT).show(); 
     } else { 
      if (mBtAdapter.isEnabled()) { 
       Log.d(TAG, "...Bluetooth Activado..."); 
      } else { 
       //Solicita al usuario que active Bluetooth 
       Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); 
       startActivityForResult(enableBtIntent, 1); 

      } 
     } 
    } 
} 

エラーがある:互換性のないタイプを:実測値: 'android.bluetooth.BluetoothDevice' が必要です: 'java.lang.Objectの'

私はドン

」私はこの問題をどのように解決できるかを知っています。ミス

答えて

1

がある場合は、コレクションを使用している間

は、私が明確であることを願っていますあなたの助けのために事前に

をありがとう、ごめんなさいあなたは、意味の代わりgenericの生型Setを使用していましたデータの種類を定義することができますし、あなたが定義されていない場合は種類がとても使いObject

のものであろう

Set<BluetoothDevice> pairedDevices = mBtAdapter.getBondedDevices(); 

代わりの

Set pairedDevices = mBtAdapter.getBondedDevices(); 

注:すでにさらに

What is a raw type and why shouldn't we use it?

を読む VerificarEstadoBT()


を行って、それは冗長だonresumeからmBtAdapter = BluetoothAdapter.getDefaultAdapter();を削除

関連する問題