我正在尝试通过Java和Android Studio学习和制作Android应用。我的Java领域是两年前的youtube学习和两年的基础大学课程。我确实知道如何编码。我精通Python。
我希望使用这个蓝牙库(https://github.com/akexorcist/Android-BluetoothSPPLibrary),以便我可以在电话和支持蓝牙的ESP32微控制器之间简单地进行通信。
在我的项目中,我创建了一个按钮,将用于测试该库。
*snip*
//my button
Button btn = findViewById(R.id.myBtn); //use R.id for the button id
btn.setOnClickListener(new View.OnClickListener() { //button listener
@Override
public void onClick(View v) {
//add whatever code here
Log.e("my app", "log msg test"); //outputs to logcat window
BluetoothSPP bt = new BluetoothSPP(Context);
if(!bt.isBluetoothAvailable()) {
Log.e("my app", "bluetooth is not available");
} else {
Log.e("my app", "bluetooth is available");
}
}
*snip*
我坚持:
BluetoothSPP bt = new BluetoothSPP(Context);
上下文给我一个错误,表示需要表达式。我查看了Java中的Context,并理解了为什么会这样。但是,我不知道如何实现它,更不用说这里的适当上下文了。
答案 0 :(得分:1)
如果您的代码在从Activity类继承的类中
即MainActivity类扩展了Activity
您可以尝试像这样通过:
BluetoothSPP bt = new BluetoothSPP(MainActivity.this);
(因为“活动”正在实现上下文)
如果它位于View类或片段之类的内部,则应尝试以下操作:
BluetoothSPP bt = new BluetoothSPP(getContext());
答案 1 :(得分:0)
如果是为了活动
BluetoothSPP bt = new BluetoothSPP(MainActivity.this);
or
BluetoothSPP bt = new BluetoothSPP(this);
or
BluetoothSPP bt = new BluetoothSPP(getApplicationContext());
如果是片段
BluetoothSPP bt = new BluetoothSPP(getActivty());