我正在构建一个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)
有没有办法解决这个问题?
或者我是否必须在未征得用户许可的情况下明确启用蓝牙? (但是,这是我想避免的情况)
谢谢
答案 0 :(得分:1)
将extends Application
替换为extends Activity
android.app.Application类是一个用于扩展和存储应用程序全局状态的可选工具。还有其他方法可以做到这一点,因此大多数应用程序都不会自定义此类。
然而,活动定义了应用程序的每个主要阶段。没有活动就无法构建应用程序。您将拥有一个主Activity类,这确实将使用'extends Activity'进行定义。
以上链接的上述声明
欲了解更多信息, What is the difference between Extends Application and Extends Activity in Android?