Android Studio不兼容的类型

笛里谁知壮士心,沙头空照征人骨。这篇文章主要讲述Android Studio不兼容的类型相关的知识,希望能为你提供帮助。
我按照这个tutorial点亮带手机的LED。但是我在这段代码中有错误:

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() + " " + 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 Studio不兼容的类型】错误是:不兼容的类型:找到:'android.bluetooth.BluetoothDevice',require:'java.lang.Object'
我不知道如何解决这个问题。
预先感谢您的帮助
我希望明确,如果有错误,我很抱歉
答案你使用了原型Set而不是generic的意思,而使用集合你可以定义数据的类型,如果你没有定义,那么类型将是Object
所以用
Set< BluetoothDevice> pairedDevices = mBtAdapter.getBondedDevices();

代替
Set pairedDevices = mBtAdapter.getBondedDevices();

注意:从mBtAdapter = BluetoothAdapter.getDefaultAdapter(); 删除onresume它是多余的,已在VerificarEstadoBT()中完成
进一步阅读
What is a raw type and why shouldn't we use it?

    推荐阅读