I want to detect offline mobile phones in a specific area, they are offline no GPS and no internet. I have an application and it should take an action when it detects that it is in the area.
the area may be a floor on a building or even a room.
Can I set a repeater device and wait for its signal to show up then to take an action based on the Cell Id?
knowing that I don't need the mobile phone to connect the repeater.
is there a better approach?
I think you mean that you want an app on the phone to detect it is in the room or building, even when the app is not connected to the internet and not using GPS.
An alternative approach to using a specialist device as you outline, and which might be worth testing, is to leverage the WiFi scanning that your device is probably already doing, even when not connected to the internet.
In Android, for example, you can register a broadcast listener for 'SCAN_RESULTS_AVAILABLE_ACTION' which will provide you a list of all the nearby wifi access points including their BSID's and SSID's ():https://developer.android.com/reference/android/net/wifi/ScanResult
There are permission restrictions which you need to be aware of but they are quite common ones for users - more details here:
https://developer.android.com/guide/topics/connectivity/wifi-scan
Many location services use this type of approach, often to supplement the GPS info and improve accuracy.
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 new to the drone community. I am trying to use a drone to follow a driving vehicle and record a video, this would be part of my graduate school project.
I know DJI provides an "active track" function but it seems like the maximum speed for the tracking is around 20-25 mph, and it cannot track the vehicle at a top-down angle (drone looks straight down at the vehicle).
I have an idea to send the GPS info of the ego vehicle to my mobile device and use a customized app to read the GPS location and set it as a target so the drone can follow it.
Is it doable? Is it in general worth the effort? Or is it better off to just use the active track and work with the best angle that I can get?
I've done that.
Send gps updates from a tracker phone to the phone connected to rc.
You have to use virtualstick mode in the MSDK. Tha max speed is 15m/s
Virtual stick functions in the DJI Mobile SDK simulate the remote controller's joysticks, and therefore an aircraft can be automated to fly in any way a human can manually fly it. Compared to missions, this is a more complicated, but flexible way to automate flight.
Works very well.
An example:
https://youtu.be/i3axYfIOHTY?t=55
It's a little shaky, but thats fixed now :-)
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'm checking at DJI specification for Phantom 2 Vision and Phantom 2 Vision plus and also API reference, but I'm not sure wether is it possible to pilot drone without remote controller? How is the communication via SDK done - is smartphone directly communicating with drone, or is going via remote controller?
DJI SDK Level 2 does allow direct flight control of the DJI Phantom 2 Vision+. It communicates the commands to the unit using wifi. That being said, the wifi extender that your phone is connected to is attached to the controller, so you still need the controller to be turned on and in the vicinity in order to operate, but the device is still what is sending the commands to the Phantom. I would recommend that someone always have the controller at the ready incase the wifi network has interference / phone dies etc. I am using the SDK in this way for my side project www.followmephantom.com.
Hope that helps.
FYI - to use the level SDK you first have to submit a proposal for your project to DJI and get their approval..... and pay a fee in most cases.
Here is a helpful link that shows the difference in features for the SDK level 1 and 2.
https://dev.dji.com/en/products/sdk/mobile-sdk/features/level-compare
From 3 weeks of playing: the smart phone controls the gimbal and the camera in general, all the flight controls are strictly from the remote control unit albeit waypoints from the smart phone could be argued as control by the phone. I havent flown it without the smart phone but I am fairly sure I could, without blades on the sitting room floor it seemed possible. I cant imagine why you would want controls from your phone, when things go pear-shaped you would be pretty much screwed with just a touch screen.
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.