I'm interesting in Proximity Profile services on top of the BR/EDR profiles instead of the GATT. I'm talking about Windows Bluetooth Stack (Windows 7) that is not supporting BLE APIs.
Questions:
Is it possible?
Can you point me on the specific implementation?
Is there 3rd party solution that can help (I*'m talking about non-BLE radio that is shipped with Windows 7 laptops)?
Thanks in advance!
I think they're 2 completely separate things. You can implement both at the same time or just one or just the other. I think the proximity profile just requires advertising where GATT requires you to connect to a device to read attributes.
EDIT:
It helps to read the spec before answering. ^_^
Just glancing at it, it seems that the proximity thing works by making a regular connection and then sending an alert when the connection is loss. It uses the GATT to configure options related to it. So, for example, you could configure the alert level given.
As for doing this over BR/EDR, I don't know. You can access GATT over BR/EDR, but I'm not sure if that's covered by the profile. The linked profile talks only about BLE and references to BR/EDR is to compare it with BLE.
Related
I am trying to connect to my iPhone and access services such as the battery level and ANCS from windows. I have tried out the Advertisement watcher and query but I feel as though they are really inconsistent. I am just using the code they provided in their updated documentation. I feel as though my results are extremely buggy. Devices show up multiple times and then become unreachable. It's almost as if past devices are never cleared from the cache (this may need to be something I do manually?) upon restarting my UWP in debug x86. I have briefly had success with the advertisement watcher and was even able to initiate pairing. Although when I read the battery level it was still not a number after using the data reader. I noticed that there were some service solicitation properties on the documentation but I could not figure out how to use them. Would these help and if so how could I use them? This might be useful when I try to connect to the ANCS of my iPhone.
Edit 1: After trying out the sample provided by Microsoft, I am still having a similar issue. I am able to see devices and even pair with them but when I click the connect button, it returns that there is a connection failure. In order to advertise to the BLE I am using the LightBlue app on my iPhone to advertise a virtual peripheral with the battery service added. My end goal is to connect to the iPhone directly and access some of its native BLE services and characteristics. I have heard that this can be done with something called service solicitation but have failed to successfully find any real examples of this being put into practice in a UWP (maybe it's not used anymore). I am still pretty new to BLE so I am trying to work out some of my fundamental misunderstandings of how it works so if there is something I am missing please let me know below!
BLE Failing to connect after pairing.
Edit 2: Ok after cleaning and re-building to fix some of my silly mistakes, I can now say that the example project is running as intended from what I can tell. The solution is actually pretty nice and I can see it is much more elegant than my implementation. However, I see that I am running into the same issue as before where the services of my virtual peripheral become undiscoverable after pairing and now result in a "Device Unreachable" exception in scenario 2. It seems as though Windows does not support "Resolvable Random Private Addresses." To elaborate, it does not provide my phone with an Identity Resolving Key (IRK) upon pairing with my iPhone 11 in order to keep track of its address. In order to access certain key characteristics, I need authorization.
Is there any way I can exchange an IRK upon pairing using the custom pairing capability or is there another method to provide authorization in order to access these characteristics on my iPhone? As it is, ANY and ALL GATT services present on the iPhone (virtual peripheral or native OS) become unreachable as soon as I successfully pair with the device. I am hoping it is possible to implement a solution in Windows as if not then communicating meaningful data between modern devices seems impossible with outdated privacy protocols.
I did a little bit of research and it is either the problem above or something to do with my Bluetooth device.
If I were to try to access characteristic without pairing
Edit 3: I have been able to get it to work briefly and it was wonderful. I used the system settings to pair and magically got the prompt on my phone to share notifications. From there, I had authorization/authentication and everything else I wanted to do was a breeze. Unfortunately, this does not seem to be reproducible as I have to randomly pair and unpair while starting and stopping the sample solution to get this prompt. I don't entirely remember what was happening when it popped up, but it does not seem easy to recreate. I thought that pairing would be my solution, but I am now stuck. When I pair with the device, I cannot access any services, but when I am unpaired, I can see all of the services and characteristics I need. However, when trying to subscribe to those characteristics I get "System.Exception: 'The attribute requires authentication before it can be read or written. (Exception from HRESULT: 0x80650005)'." Is there any way for me to request access to the notifications on my iPhone using something in the documentation? I need a reproducible way to request system notification access on my iPhone.
I am developing an Android Device Management (Enterprise) application. One of the requirements given to me was to block all the applications on the device (Tablets) from using cellular data except the applications installed by the organisation. The devices may have Lollipop or lower versions and there are approximately 100,000 devices (so, rooting them is not preferred/almost impossible). I have looked up on the internet regarding this and a non-root solution I found was to use the VPN service provided by Android.
My idea is to have a VPN server (like openVpn) and have some restrictions (firewall) that block certain urls. I am not sure if this is a viable solution considering that the devices use cellular data in rural areas of India and the network is not exactly super strong and connecting to the VPN server every time would be extra load. I would like to understand if there are better ways to restrict apps from using data.
I'd interested in sending data from one WP7 to another WP7 phone so I could create 2 player games. If I understand correctly most WP7 will support bluetooth, but its not in the minimum spec, is this correct? What API's can I use to access the bluetooth, any good examples of this out there?
Unfortunately Microsoft don't provide any access to the bluetooth stack via any documented APIs in this version of the Dev tools.
They don't seem to have any sense of urgency about fixing this (or any of the many other missing features), so I wouldn't expect the situation to change any time soon.
What features can I look forward to in Windows 7 that will:
Make my job easier as a developer.
or...
Make my job "different"(harder) as a developer.
I've been hearing a lot about performance improvements and a few UI effect enhancements, but nothing really about what development on Windows 7 will be like. Thanks.
Following are areas that are new:
multi touch API for developing touch based applications
new concept of 'libraries' for storing user specific data (similar to mydocuments)
Enhanced support for GPS and other such hardware
Office2007 Ribbon like user interface
Refer to http://windowsteamblog.com/blogs/developers/default.aspx for details.
The new sensors API will make your job easier, provided Microsoft can get enough people on-board with it. It should provide you a standard way to interface with things like GPS and light sensors, if you program with that kind of thing.
Very east to use and seamless Virtual PC is great for debugging and testing.
Touch is another new capability.
Feature list from Wikipedia.
To answer your actual question:
I don't think any of them are aimed at developers explicitly (such a tiny niche really).
For the begged "Features to use in apps" question:
I'd like to see lots of search extenders, jump lists, and those little "preview shortcut" button things (I have no idea what they're called).
Microsoft publishes an official Windows 7 Developer Guide.
Does anyone know if Palm's new Mojo SDK will grant access to bluetooth APIs? Perhaps in some form or fashion? I can't get any information about it and given I have to choose what to spend my money on in regards to the the next platform for my development, I would really like to NOT waste it.
Perhaps there's some lucky PRE developmers out there who already know the answer?
Thanks!
At the moment, there's no access to the Bluetooth stack from the webOS APIs. It's possible that future versions of the system could expose them, but there's no system service for doing things like BT file transport. Currently Bluetooht is only supported for voice, A2DP playback, and AVRCP remote controls.