Android 程序没有´;当要求打开蓝牙时,请不要停止

Android 程序没有´;当要求打开蓝牙时,请不要停止,android,bluetooth,dialog,Android,Bluetooth,Dialog,我尝试使用对话框BluetoothAdapter.ACTION\u REQUEST\u ENABLE向用户请求 打开蓝牙,但当我使用它时,程序没有等待对话框结束。 我必须知道用户是否允许打开蓝牙,这样,如果他不允许,我就可以返回到以前的活动。即使使用onActivityResult也无法获得结果 如何获得对话框的结果以及如何使程序等待对话框的结果 我尝试使用的对话框: private int REQUEST_ENABLE_BT = 100; ... Intent btEnable = n

我尝试使用对话框
BluetoothAdapter.ACTION\u REQUEST\u ENABLE
向用户请求 打开蓝牙,但当我使用它时,程序没有等待对话框结束。
我必须知道用户是否允许打开蓝牙,这样,如果他不允许,我就可以返回到以前的活动。即使使用
onActivityResult
也无法获得结果

如何获得对话框的结果以及如何使程序等待对话框的结果

我尝试使用的对话框:

private int REQUEST_ENABLE_BT = 100;  
...  
Intent btEnable = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);  
startActivityForResult(btEnable, REQUEST_ENABLE_BT);
在那之后,它只是继续,不等待结果

但是当我使用它时,程序并没有等待对话框结束

这是不应该的
startActivity()
startActivityForResult()
是异步的


我只是没有打电话给onActivityResult

您不需要在ActivityResult()上调用
。您可以在ActivityResult()上实现
。当用户完成您通过
startActivityForResult()
启动的活动时,将调用它。这是一本书

public void onActivitResult(int RequestCode,int ResultCode,Intent Data){super.onActivityResult(RequestCode,ResultCode,Data);if(RequestCode==REQUEST\u ENABLE\u BT)…}未调用此函数

那是因为你把方法名拼错了。它是onActivityResult(),而不是onActivityResult()。使用
@Override
注释可帮助检测此类问题

如何获得对话框的结果

在onActivityResult()的
中,查看蓝牙是否已启用

如何让程序等待对话框的结果


你没有。Android是事件驱动的;您可以通过onActivityResult()处理事件

,因此现在在代码中找到正确答案

//Global  
REQUEST_CODE_1 = 0;  
REQUEST_CODE_2 = 1;

onCreate(Bundle savedInstanceState)  
{  
    super.onCreate(savedInstanceState);  
    Intent dialog = new Intent(myclass.this, dialog1.class);  
    startActivityForResult(dialog, REQUEST_CODE_1);  
}  

onActivityResult(int requestCode, int resultCode, Intent data)  
{  
if(requestCode == REQUEST_CODE_1)  
{
   if(resultCode == RESULT_OK)  
   {  
       Intent nextDialog = new Intent(myclass.this, nextDialog.class);  
       startActivityForResult(nextDialog, REQUEST_CODE_2);  
   }  
}

if(requestCode == REQUEST_CODE_2)  
{...}  
}

“用onActivityResult获得结果也不起作用”——请更详细地解释你这句话的意思。“不工作”是什么意思?我只是没有打电话给onActivityResult。我像以前一样编写了它,但活动只是继续进行,没有等待结果。public void onActivitResult(int-RequestCode,int-ResultCode,Intent-Data){super.onActivityResult(RequestCode,ResultCode,Data);if(RequestCode==REQUEST\u-ENABLE\u-BT)}这不是一个调用,非常感谢。现在它起作用了。我在onActivityResult()中捕获结果,如果结果正常,则可以在onActivityResult()中启动下一个对话框。onActivityResult()我完成这项任务的速度很慢,所以下面是它的其余部分://Global REQUEST\u CODE\u 1=0;请求_代码_2=1;onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);Intent dialog=newintent(myclass.this,dialog1.class);startActivityForResult(dialog,REQUEST_CODE_1);}onActivityResult(int requestCode,int resultCode,Intent data){if(requestCode==REQUEST_CODE_1){if(resultCode==RESULT_OK){Intent nextDialog=newintent(…);starttactivityforresult(nextDialog,REQUEST_CODE_2);}}如果(requestCode==REQUEST_CODE_2){…}好的,我会在6小时内发布正确的内容,这样我就可以作为答案而不是评论来做了。。。