为什么 android.bluetooth.BluetoothAdapter#listenUsingL2capOn(int) 不可访问?
Why is android.bluetooth.BluetoothAdapter#listenUsingL2capOn(int) not accessible?
这可能是一个新手问题,因为我对 Android 的经验有限,但由于某种原因我无法访问方法 android.bluetooth.BluetoothAdapter#listenUsingL2capOn(int)
。它似乎是 public,因此不确定为什么该符号未被识别。另外请注意,如何在 android 上打开 L2CAP 蓝牙套接字服务器?我发现只有一个问题与此有点相关 - 。任何帮助将不胜感激。
在Android中我们有两个不同级别的public方法:
- Java级public:这个由
public
关键字控制。
- Android-level public:这个由
@hide
注解控制。如果方法在其 JavaDoc 中没有 @hide
注释,则该方法是 Android 级 public。
如果一个方法是Java级public,而不是Android级public,这意味着它只能在Android内使用] 框架代码,而不是应用程序代码。这是保持 Android API 尽可能小所必需的:当 Android 开发人员添加一个在 Android 框架代码中的许多地方都很有用的辅助方法时,他们会希望此方法是 Java 级 public,以便它可以被 Android 框架代码中的其他 类 使用。但是,Android 开发人员可能不希望应用程序代码使用此辅助方法,因为如果他们以后重新编写代码并且不再需要辅助方法,则删除该方法会破坏使用它的应用程序。不使方法 Android 级 public 给 Android 开发人员更多的自由 change/remove 稍后的方法。
例如考虑您提供的方法:listenUsingL2capOn
有 @hide
注释,可以看出 here. Therefore, it is not considered Android-level public. You can also see this from the API documentation of BluetoothAdapter
, which does not list the methods that are not Android-level public (link).
关于你的附带问题:我不熟悉如何在 Android 中创建 L2CAP 蓝牙套接字服务器,但你链接的答案看起来很有希望。例如。使用 BluetoothDevice#createL2capChannel
and BluetoothAdapter#listenUsingL2capChannel
。请注意后者的名称与 listenUsingL2capOn
.
的形式不同
这可能是一个新手问题,因为我对 Android 的经验有限,但由于某种原因我无法访问方法 android.bluetooth.BluetoothAdapter#listenUsingL2capOn(int)
。它似乎是 public,因此不确定为什么该符号未被识别。另外请注意,如何在 android 上打开 L2CAP 蓝牙套接字服务器?我发现只有一个问题与此有点相关 -
在Android中我们有两个不同级别的public方法:
- Java级public:这个由
public
关键字控制。 - Android-level public:这个由
@hide
注解控制。如果方法在其 JavaDoc 中没有@hide
注释,则该方法是 Android 级 public。
如果一个方法是Java级public,而不是Android级public,这意味着它只能在Android内使用] 框架代码,而不是应用程序代码。这是保持 Android API 尽可能小所必需的:当 Android 开发人员添加一个在 Android 框架代码中的许多地方都很有用的辅助方法时,他们会希望此方法是 Java 级 public,以便它可以被 Android 框架代码中的其他 类 使用。但是,Android 开发人员可能不希望应用程序代码使用此辅助方法,因为如果他们以后重新编写代码并且不再需要辅助方法,则删除该方法会破坏使用它的应用程序。不使方法 Android 级 public 给 Android 开发人员更多的自由 change/remove 稍后的方法。
例如考虑您提供的方法:listenUsingL2capOn
有 @hide
注释,可以看出 here. Therefore, it is not considered Android-level public. You can also see this from the API documentation of BluetoothAdapter
, which does not list the methods that are not Android-level public (link).
关于你的附带问题:我不熟悉如何在 Android 中创建 L2CAP 蓝牙套接字服务器,但你链接的答案看起来很有希望。例如。使用 BluetoothDevice#createL2capChannel
and BluetoothAdapter#listenUsingL2capChannel
。请注意后者的名称与 listenUsingL2capOn
.