【问题标题】:Programmatically enabling bluetooth on Android以编程方式在 Android 上启用蓝牙
【发布时间】:2014-03-21 15:14:51
【问题描述】:

我正在尝试确定在 Android 上以编程方式启用蓝牙的首选方式。我发现以下任何一种技术都有效(至少在 Android 4.0.4 上...):

public class MyActivity extends Activity {
    public static final int MY_BLUETOOTH_ENABLE_REQUEST_ID = 6;
    ...
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ...
        Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
        startActivityForResult(enableBtIntent, MY_BLUETOOTH_ENABLE_REQUEST_ID);
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == MY_BLUETOOTH_ENABLE_REQUEST_ID) {
            if (resultCode == RESULT_OK) {
                // Request granted - bluetooth is turning on...
            }
            if (resultCode == RESULT_CANCELED) {
                // Request denied by user, or an error was encountered while 
                // attempting to enable bluetooth
            }
        }
    }

或者...

BluetoothAdapter.getDefaultAdapter().enable();

前者在启用之前要求用户许可,而后者只是静默启用蓝牙(但需要“android.permission.BLUETOOTH_ADMIN”权限)。一种或另一种旧/过时和/或一种技术仅在某些设备上可用?还是只是个人喜好问题?

【问题讨论】:

  • 我记得在某处读到过,你不应该在不告诉用户的情况下打开东西。谷歌也不喜欢它。
  • 没错,但这两种技术都是由 Google 提供的,因此,应该是 Google 批准的......并且两者都告诉用户,这只是他们何时告诉用户的问题(在安装与. 稍后当它实际打开蓝牙时)。我知道从客户友好性的角度来看,一种可能更可取,但我也想知道这两种技术是否随处可用,或者一种或另一种是否仅限于某些版本,或者一种曾经是正常的方式,但现在现在皱起眉头,等等。
  • 嘿特洛伊!你找到答案了吗?我打算在我的应用程序中使用它,但我看到了那个警告。所以我该怎么做?我已经在清单文件中添加了这些权限,我还需要做什么吗?或者例如。如果我将我的应用程序上传到 Play 商店,那会拒绝吗?谢谢!

标签: android bluetooth


【解决方案1】:

Android中明确提到Doc

未经用户直接同意,切勿启用蓝牙。如果要打开蓝牙以创建无线连接,则应使用 ACTION_REQUEST_ENABLE Intent,这将引发一个对话框,请求用户允许打开蓝牙。 enable() 方法仅适用于包含用于更改系统设置的用户界面的应用程序,例如“电源管理器”应用程序。

这两种技术都可以。您必须根据您的目的和要求进行选择。 希望它能回答你的问题。

【讨论】:

    【解决方案2】:

    我认为这会有所帮助...

    https://stackoverflow.com/a/20142972/1386533

    您还需要在清单文件中添加以下权限。

    android.permission.BLUETOOTH,

    android.permission.BLUETOOTH_ADMIN

    【讨论】:

    • 感谢您的回复,但我不需要启用蓝牙的说明(我在问题中提供了说明)。问题在于这两种技术之间的可取性以及每种技术在 Android 版本中的可用性。
    【解决方案3】:

    这对我有用... 蓝牙适配器 mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); mBluetoothAdapter.enable();

    【讨论】:

      猜你喜欢
      • 2011-04-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-19
      • 2011-09-22
      相关资源
      最近更新 更多