gpt4 book ai didi

java - Android Studio 不兼容的类型

转载 作者:行者123 更新时间:2023-12-02 12:18:15 25 4
gpt4 key购买 nike

我关注这个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() + "\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'

我不知道如何解决这个问题。

预先感谢您的帮助

希望说清楚,如有错误,敬请谅解

最佳答案

您使用了原始类型 Set 而不是 generic 的意思,在使用集合时,您可以定义数据类型,如果不定义则类型将是对象

所以使用

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

而不是

Set pairedDevices = mBtAdapter.getBondedDevices();

注意:从 onresume 中删除 mBtAdapter = BluetoothAdapter.getDefaultAdapter(); 它是多余的,已在 VerificarEstadoBT() 中完成

<小时/>

进一步阅读

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

关于java - Android Studio 不兼容的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45999089/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com