我正在编写一个Android BLE应用程序,我正在尝试获得某个特性的权限.我已经设法使用characteristic.getProperties()获取特性属性,并返回非零值,但是,当我使用getPermission()方法时,它返回0,即使我确定该特性具有PERMISSION_WRITE_ENCRYPTED_MITM(0x00000040) ).
这是一段代码片段
// properties
int properties = ch.getProperties();
DebugWrapper.infoMsg("properties: " + properties, TAG); //returns non-zero value
// permissions
int permissions = ch.getPermissions();
DebugWrapper.infoMsg("permissions: " + permissions, TAG); //returns zero value
Run Code Online (Sandbox Code Playgroud)
难道我做错了什么?有没有特定的方法来获得特性的权限或这是Android api的问题?
我正在使用API 19并在Samsung Galaxy Note 3上测试我的程序.
我感谢任何帮助.
java android bluetooth bluetooth-lowenergy android-bluetooth
我在RecyclerView中有一个项目列表,我在onBindViewHolder中为每个视图设置了onClickListener.点击监听器工作正常,问题是我可以同时点击列表中的两个项目,它们都将运行他们的onClick方法.如果你有ListViews,如果你试图同时点击两个项目,它不允许你.
例如:
假设您已经触摸列表视图中的某个项目,并且在此期间您尝试触摸另一个项目,它将不会让您.Recyclerview允许这样做.
如何点击时,我们如何使RecyclerView像ListView一样工作?
以下是我的实施
public class DataCardAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
private Context mContext;
private ArrayList<Data> mDatas = new ArrayList<>();
private Data mData;
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View card = LayoutInflater.from(mContext).inflate(R.layout.card, parent, false);
return new DataCardViewHolder(mContext, card, mData);
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
Data data = mDatas.get(position);
((DataCardViewHolder )holder).configureDataCard(data);
}
public static class DataCardViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{
private Context mContext;
private Data mData;
public DataCardViewHolder(Context context, View view, Data data) { …Run Code Online (Sandbox Code Playgroud) 我有一台支持 BLE 广告的三星 SM-G950F ,但在播放了一些广告后,它开始抛出错误代码 2 (ADVERTISE_FAILED_TOO_MANY_ADVERTISERS),其中 Android 文档显示“无法启动广告,因为没有可用的广告实例”。而让它再次工作一段时间的唯一方法就是重新启动设备。另一种设备 HTC 10 也有类似的问题,它一开始工作得很好,最终慢慢地每 10 或 20 次传输中丢失 1 次,但很快就会降级到每 50 次发送 1 次。最后,设备需要重新启动使应用程序再次运行。
我的用例如下:
这是三星 S8 设备特有的问题还是我的实施方式有问题?有没有办法以编程方式清除/重置广告商?
此外,如果您知道任何其他设备存在类似问题,最好能分享一下以帮助其他人了解它们。
注意: 相同的代码在运行 android 6.0.1 的 Samsung S5 SM-G900F 上运行良好
代码片段
public void startAdvertising() {
// making sure that the advertiser object was initialised, it is null if the user opened the app
// without having …Run Code Online (Sandbox Code Playgroud) java android samsung-mobile bluetooth-lowenergy samsung-galaxy