java - 用户在蓝牙可发现性对话框中单击的 Activity

标签 java android bluetooth android-dialog

我对 Java 很陌生,如果有人能向我解释一下,我将不胜感激 我如何实现 startActivityForResult(Intent, int) 和 蓝牙可发现性中的onActivityResult() here .

我想要实现的是:在按钮启用 BTDisco 上单击 (if(bttn.getId() == R.id.bt_disco) 我的程序调用 BTDiscoverable() 方法:

public void BTDiscoverable() {
    Intent discoverableIntent = new
Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
    discoverableIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION,
BT_ENABLE_TIME);
    startActivityForResult(discoverableIntent, REQUEST_ENABLE_BT);
}

现在, dialog弹出。如果用户单击否,程序不应 继续。如果用户单击"is",Enable BTDisco 按钮应变为 不可用,另一个按钮(我们称之为开始)变为可用。我 编写了 onActivityResult ,这将使 Start 按钮可用,但我 怀疑这样做是否正确。 fragment 如下:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent
data)
{
    if (requestCode == REQUEST_ENABLE_BT)
    {
        if(resultCode == RESULT_OK)
        {
            ((Button)            findViewById(R.id.bt_server_start)).setEnabled(true);
            BTCountDown = new BTTimer(BT_TIME_BTTIME,BT_TIME_BTTIME);
            BTCountDown.start();
        }
    }
}

startActivityForResultBTDiscoverable 方法中调用,但它确实 没有提供我想要的。我已关注 this 但我很 新来的,我不知道如何在像我这样的问题中实现这个。

onActivityResult 方法是扩展 Activity 的实现类。 编译时没有错误。 长话短说:R.id.bt_server_start 按照最初编程的方式保持禁用状态。 确实需要一些帮助。

最佳答案

就放这个

if(resultCode != RESULT_CANCELED)

文档说明如下

然后,您的 Activity 将收到对 onActivityResult()) 回调的调用,结果代码等于设备可发现的持续时间。如果用户回答“否”或发生错误,结果代码将为 RESULT_CANCELED。

因此,如果结果代码不是 RESULT_CANCELED,那么您就可以启用按钮。

关于java - 用户在蓝牙可发现性对话框中单击的 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20410427/

相关文章:

java - java android 每 5 秒扫描一次可用的无线网络

java - 使用 Eclipse 创建 Servlet 后,Tomcat 7 服务器无法启动

java - 拦截来自特定命名空间的所有方法/构造函数/getters/setters

android - 新发布的应用程序包名称 'ClassNotFoundException'

android - 版本冲突更新到播放服务 9.4.0 Android studio 2.2

android - android 中 mediastore 中 MICRO_KIND 和 MINI_KIND 的区别?

ios - 入门 - 创建一个通过蓝牙命令控制另一个(非 iOS)设备的 iPhone 应用程序

java - 直接在模型上检查验证

Swift Strings 似乎错误地处理了回车符和换行符

Android wiimote 套接字无法连接