安卓O中,Secure.getString(mContext.getContentResolver(), "bluetooth_address")返回空值。

8
当我尝试在Android O设备上获取蓝牙地址时,可以通过以下方式:
private String getBlutoothAddress(Context mContext){  
    // Check version API Android
    BluetoothAdapter myBluetoothAdapter;
       
    String macAddress;

    int currentApiVersion = android.os.Build.VERSION.SDK_INT;

    if (currentApiVersion >= android.os.Build.VERSION_CODES.M) {
        macAddress = Settings.Secure.getString(mContext.getContentResolver(), "bluetooth_address"); 
    } else {
        // Do this for phones running an SDK before lollipop
        macAddress = myBluetoothAdapter.getAddress();            
    }
}

所有代码在 Android O(8.0)上都能正常工作,但是当我用该代码时,它返回的 macAddress 为 null。

2个回答

9

1
在询问之前,我按照您的方式尝试了,但代码不起作用,因为正如您所说,“LOCAL_MAC_ADDRESS权限是系统权限,因此实际上您的应用程序无法拥有它。”那么,在Android O上获取蓝牙地址没有任何解决方案吗? - Ngụy Thắng
通过获取地址,你尝试解决的问题是什么? - laalto
我在我的应用程序中使用蓝牙地址来识别我的设备。你有什么解决这个问题的想法吗? - Ngụy Thắng
在安卓 10 中,android.provider.Settings.Secure.getString(context.getContentResolver(), "bluetooth_address") 返回 null。 - Bolt UIX

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接