Android BluetoothAdapter.getDefaultAdapter()引发异常

Android BluetoothAdapter.getDefaultAdapter()引发异常,android,bluetooth,libgdx,Android,Bluetooth,Libgdx,我尝试将蓝牙添加到我的libgdx安卓项目中。 我在Android清单中添加了以下内容: <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> <uses-permission android:name="android.permission.BLUETOOTH" /> 在非活动类中-异常。 我已经读过,这门课应该是活动课。 可以我创造了 public class B

我尝试将蓝牙添加到我的libgdx安卓项目中。 我在Android清单中添加了以下内容:

   <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
   <uses-permission android:name="android.permission.BLUETOOTH" />
在非活动类中-异常。 我已经读过,这门课应该是活动课。 可以我创造了

   public class BluetoothServer extends Activity {
    ...
       public void GetBluetoothAdapter () {
         mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
      }
    }
我按如下方式运行:

BluetoothServer.GetBluetoothAdapter()
在同一个地方再次撞车。 我在两台装有蓝牙的设备上试过。 当然,这些设备上启用了蓝牙。 我不知道该怎么办


谢谢。

如果你能找到撞车的原因,那将大有帮助。由于某些原因,您似乎无法访问stacktrace,请至少尝试以下操作以查看崩溃原因:

...
try {
    mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
} catch (Exception e) {

    Toast toast = Toast.makeText(getApplicationContext(), e.getMessage(), 1000);
    toast.show();
}
...

要获取表示本地蓝牙适配器的BluetoothAdapter,在JELLY_BEAN_MR1及以下版本上运行时,调用静态getDefaultAdapter()方法;在JELLY_BEAN_MR2及更高版本上运行时,请使用BLUETOOTH_服务通过getSystemService(字符串)检索它。

我对你的好答案说“谢谢”。我在前面的问题中找不到“accept”按钮或类似的按钮。如果我这样做,我会得到编译错误“没有静态方法GetApplicationContext()无法从静态上下文引用”。我无法使GetMyAdapter()方法成为非静态方法。它将不会作为BluetoothServer.GetMyAdapter()从另一个类中可见。我不确定toast.show()是否可以工作,因为我使用Libgdx render()方法。我将其制作为toast.ToString(),可以显示。不幸的是,我没有为Android编写活动应用程序的经验,只有一些Libgdx的经验。我可以看看e.getMessage()。它说:“无法在未调用Looper.prepare()的线程内创建处理程序。”我愚蠢地尝试了以下操作:BluetoothServer.this.runOnUiThread(new Runnable(){@Override public void run(){…=BluetoothAdapter.getDefaultAdapter();…再次崩溃。
...
try {
    mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
} catch (Exception e) {

    Toast toast = Toast.makeText(getApplicationContext(), e.getMessage(), 1000);
    toast.show();
}
...