Integrating altbeacon with BluetoothCrashResolver - ibeacon

I have an app that uses the altbeacon Android Beacon Library to do iBeacon monitoring and ranging, and I'm trying to handle the "Bluetooth share has stopped" crash.
I've followed the instructions to copy in the BluetoothCrashResolver class seen here (https://github.com/RadiusNetworks/bluetooth-crash-resolver) and initialize it in the class that does the ranging. My question is, how do I expose the proper BluetoothDevice and BluetoothAdapter.LeScanCallback parameters in order to call notifyScannedDevice upon discovery of an iBeacon?
Thanks in advance!

Recent versions of the Android Beacon Library (dating back 18 months) already have integration with the Bluetooth Crash Resolver out-of-the box. There is no need to do any configuration as it is enabled automatically.
It is important to note, however, that the Bluetooth Crash Resolver is not a panacea for preventing crashes on Android 4.3 and 4.4. It works well on Nexus and other devices with close to stock Android. It works less well with some heavily modified Samsung ROMs.

Related

Using DJI SDK offline

I am starting to get used to Android DJI Mobile SKD... Even successfully got DJI FPV sample code running on my Phantom 4 Pro+ GL300E screen (SDK 22).
My problem: it seems that an app using the SDK has to get the internet connection to be able to register to DJI before doing anything.
Such process apparently doesn't happen only once, but occurs every time I run my application.
My need: I should be able to use my UAV in the countryside, without any internet connection of course: will I be able to use a DJI-SDK based application in such conditions?
You only need to register the SDK once via internet. After the first successful registration, the app remembers it and you can use your app on offline mode. You will however need to activate it again if you make a clean installation.
Btw:
You don't need to have a SIM inserted to use your App.
You don't need to login to your DJI account to use your App.
The SDK seems to connect to the internet on it's own from time to time. The purpose is unknown to me but I guess it's e.g. to retrieve updates for the flySafe Database (FlyZoneManager).
To ensure the SDK does not connect to the internet apart from app activation you can additionally use the LocalDataManager (LDMManager) accessible from the DJISDKManager:
if(DJISDKManager.getInstance().getLDMManager().isLDMSupported()) {
DJISDKManager.getInstance().getLDMManager().enableLDM();
}

Enrolling Android 5.1 device fails without reason

I am trying to enroll a fleet of Android 5.1 devices which did never receive a newer version of Android and are not working with any third party ROM. So we're stuck on 5.1.
As the Google Play Services in the ROM was so old, that I couldn't even install the Android Device Policy DPC, I updated the Play Services in the ROM using an update.zip, wiped the device and then enrolled the device using a NFC tag.
Unfortunately, enrollment is not working, and I'm not even getting an error message. The DPC seems to set itself as the device owner, but no enrollment is taking place - the device does not show up on the API, and upon launching the DPC from the application drawer and clicking on the "Get started"-button, we always are presented with "Your system cannot be managed by this app. Please contact your administrator".
Well, I am the administrator and I have no clue, why this is failing.
Has anyone an idea, what the DPC is looking for before deciding that the device cannot be managed? Or how to get a more meaningful message out of the DPC?
The Android Management API doesn't support NFC provisioning on Android 5.1. It is only supported on Android 6.0 and above.
The documentation previously mentioned that 5.1 is supported, that was an error and we have now updated it.

How do I fix xamarin.ios app crash on launch in iPhone 8 cellular data?

We have develop a xamarin.ios app thats work fine on all iPhone and iPad except iPhone 8. Its crashed on launch in iPhone 8 on cellular data. Its working good on wifi. I don’t have iPhone 8 device right now, so I am checking it on simulator. But simulator using wifi and its working good on simulator. How can I identify the problem and how to solve it?
FYI we are consuming a service on app launch that need an active internet. Any idea, Please reply.
This should really be a comment, but I don't have the reputation for one.
Without knowing what is happening when your app has launched, have you tried testing your app without a Wi-Fi or data connection?
The issue might be that your clients device is getting a different response from the service that you have not accounted for and this might be causing exceptions etc.
We are checking on IPv6 network but our API was not compatible to IPv6. When we change the network to IPv4, Its work perfectly. But as per apple guidelines we must have to compatible our API to IPv6 network.

Android accessibility service is restarted while taking adb uiautomator dump

I have created my custom accessibility service for my project. Once it is enabled it is working well and serving my purpose. I need to take a dump for certain requirement. But when I take a dump using adb uiautomator command, Android system is disabling and re-enabling accessibility service.
I didn't find this behavior documented anywhere. Is there any workaround to stop Android system from disabling service ?
No there is not. Older versions of Android have a limitation. Only one service can attach to the Accessiblity APIs at a time. For example, if you attempted to turn on TalkBack while your service was on, you would see similarly poor behavior. Either TalkBack would not turn on, or your service would crash.
UIAutomator Heirarchy scanners depend on accessibility services as well as other automated testing features. This is a platform limitation and nothing you can overcome without purchasing a new device/running on a newer OS level. I believe this limitation is gone in Marshmallow, but it might be N or L.

Does Qt support the windows bluetooth API?

Can anyone tell me whether or not Qt supports the windows Bluetooth API?
If so could you please share some information on how to use it?
The answer to this question has changed a bit since the last response was given. Qt version 5.2 implemented a Bluetooth API for Linux/BlueZ and BlackBerry devices. Qt 5.3 includes Bluetooth support for Android. Linux devices can connect with RFCOMM or L2CAP protocols. Android and Blackberry only have RFCOMM.
Bluetooth on Windows is still not supported, but that fact is hard to find. Currently, if you create a QBluetoothSocket on Windows and tell it to connect to an address, it fails silently even though there is a built-in error-reporting mechanism. If you use the QBluetoothLocalDevice interface to retrieve devices, you get back an empty list. Although the class documentations don't mention the fact, the Bluetooth Overview clarifies that
Currently the API is supported on Android, BlackBerry 10 and Linux (Bluez 4.x).
Starting from Qt 5.11, Qt documentation says:
Despite there not being a Win32 port yet, the WinRT backend is
automatically used if the win32 target platform supports the required
WinRT APIs. Minimal requirement is Windows 10 version 1507 with
slightly improved service discovery since Windows 10 version 1607.
Therefore Windows 7 and 8.x targets are excluded.
Bluetooth Chat Example tested successfully using following setup:
Qt 5.11.1Win10 Qt Kit MSVC2017 64 bit.
As January 2020 documentation, Qt 5.14 officially supports "Classic Bluetooth" for win32 builds.
However, it doesn't seem complete, here mentions a restriction about finding devices:
...it is only possible to find devices that have been previously paired through Windows Settings

Resources