Android:如何通过应用程序类启用蓝牙?

时间:2018-04-02 15:09:00

标签: android bluetooth android-application-class

我正在构建一个Android应用程序,需要蓝牙连接(包括BluetoothSocket)才能在应用程序的整个生命周期内持续存在。所以,我试图通过Application类建立蓝牙连接。但是我在第一步遇到了一个问题。

在这里,我试图通过询问用户的许可来启用蓝牙。 这是我尝试过的代码:

import android.app.Application;
import android.bluetooth.BluetoothAdapter;
import android.content.Intent;
import android.widget.Toast;

public class BluetoothApplication extends Application {

    BluetoothAdapter bluetoothAdapter;

    @Override
    public void onCreate() {
        super.onCreate();

        bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
        if (bluetoothAdapter == null) {
            Toast.makeText(getApplicationContext(), "Device doesn't Support Bluetooth", Toast.LENGTH_SHORT).show();
        } else {
            if (!bluetoothAdapter.isEnabled()) {
                Intent enableAdapter = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
                startActivityForResult(enableAdapter, 0);
            }
        }
    }
}

startActivityForResult方法显示错误Cannot resolve method startActivityForResult(android.content.Intent, int)

有没有办法解决这个问题?

或者我是否必须在未征得用户许可的情况下明确启用蓝牙? (但是,这是我想避免的情况)

谢谢

1 个答案:

答案 0 :(得分:1)

extends Application替换为extends Activity

android.app.Application类是一个用于扩展和存储应用程序全局状态的可选工具。还有其他方法可以做到这一点,因此大多数应用程序都不会自定义此类。

然而,活动定义了应用程序的每个主要阶段。没有活动就无法构建应用程序。您将拥有一个主Activity类,这确实将使用'extends Activity'进行定义。

以上链接的上述声明

欲了解更多信息, What is the difference between Extends Application and Extends Activity in Android?