I am working on BLE mesh for Android and iOS.
We want to work on Addressing scheme for peer to peer communication in Mesh.
Is there any support for IPv6 over BLE (Such as 6LowPAN) in both Android and iOS. Have gone through many documents and not getting it.
Also, is IPSP profile supported over BLE?
It will be helpfull if I can links to some forums.
Related
So I'm trying to build an app that uses iOS 7 Multipeer Connectivity framework on the iPhone, but I'm now trying to connect the iPhone to an Android device using the same technology. Is this possible?
Is there something like Apple's multipeer connectivity framework for Android, or is there any way of connecting an iPhone to an Android device without using internet or mobile services, but using Wifi and bluetooth only?
Maybe a bit delayed, but technologies have evolved since so there is certainly new info around.
As iOS has yet to open up an API for WiFi Direct and Multipeer Connectivity is iOS only, I believe the best way to approach this is to use BLE, which is supported by both platforms (some better than others).
On iOS a device can act both as a BLE Central and BLE Peripheral at the same time, on Android the situation is more complex as not all devices support the BLE Peripheral state. Also the Android BLE stack is very unstable (to date).
If your use case is feature driven, I would suggest to look at Frameworks and Libraries that can do cross platform p2p for you, without you needing to build it up from scratch.
For example: p2pkit.io or google nearby
Disclaimer: I work for Uepaa, developing p2pkit.io for Android and iOS.
There is currently no way to connect with android over bluetooth, but you can connect with wifi using the Multipeer framework I believe. I know the developer of spaceteam accomplished this with his game. I'm not sure how exactly but it is possible.
Mutipeer connectivity cannot connect iOS and Android devices. Firechat & Spaceteam are using their own implementation.
More information here:
A couple of weeks after its iOS launch, FireChat made its debut on Android. Since Android doesn’t support Apple’s Multipeer Connectivity Framework, developer Open Garden had to build its own mesh networking technology to enable off-the-grid messaging across Android devices. However, FireChat messaging hasn’t been possible between iOS and Android. That is, until now. Open Garden has just updated FireChat to allow for off-the-grid messaging even between iOS and Android devices. While it declines to reveal the exact details of how it managed to make Apple’s multi-peer framework and its Android mesh network connect with each other, Open Garden has told TechCrunch that its cross-platform capability uses peer-to-peer Wi-Fi and Bluetooth personal area networking.
Source: http://appadvice.com/appnn/2014/06/firechat-now-supports-off-the-grid-messaging-between-ios-and-android
Google Nearby can do it. To cross platform, Google Nearby Message Api can do it.
I've been looking at iOS 7's new P2P networking framework, MultipeerConnectivity, and from the description, it seems to me that it uses a combination of some kind of Wi-Fi Direct technology and Bluetooth PANs.
Is the Wi-Fi Direct technology in this framework compatible with Android's Wi-Fi Direct? Can this framework actually be used for cross-platform P2P networking?
This is what we know:
There's no BTLE/Bluetooth 4.0 advertisement visible on my Texas Instruments Bluetooth Low energy scanner.
No WiFi Direct activity seen by JuJoDi.
Talkkr app can connect while WiFi is off and the connection takes about 10 seconds.
My working theory: the MultiPeer uses Bluetooth Classic, based on the above.
iOS Bluetooth Classic is known to be under the Apple MFA Accessory API's tight control and lockdown, including the MFA authentication challenge-response. Apple controls the MFA encryption keys (either in software or by the accessory authentication chips). It makes it inaccessible to other platforms.
The device is not found by either when advertising or browsing with MultipeerConnectivity. Tried on Galaxy Tab 2:
No, the two are not compatible.
The MultipeerConnectivity documentation you linked to explicitly states (emphasis mine):
The Multipeer Connectivity framework provides support for discovering
services provided by nearby iOS devices
Although you may be able to hack together a workaround akin to the short-lived iMessage app for Android, I wouldn't recommend it.
Based on my experimentation with iOS 7 AirDrop, it doesn't seem to be using WiFi Direct. The transfer rates are very low indicating that it may only be legacy Adhoc WiFi (capped at 11 Mbps). Did you ever read Apple claiming to support Wifi Direct explicitly? Please read my blog post for details.
I am very interested in this subject as well and I came across these rather old links
AllJoyn
AllJoyn® is a collaborative open-source software framework that makes it easy for developers to write applications that can discover nearby devices, and communicate with each other directly regardless of brands, categories, transports, and OSes without the need of the cloud Source: https://allseenalliance.org/developers/learn
OpenPeer SDK
Open Peer is an open P2P signalling protocol Source: http://openpeer.org/open-peer-sdk-for-ios/
I haven't used any of these libraries but I am interested to add them to my simple game for the fun of it.
source
Peer to peer android and iOS with Wifi direct (multipeer connectivity?)
Maybe a bit delayed, but technologies have evolved since so there is certainly new info around.
As iOS has yet to open up an API for WiFi Direct and Multipeer Connectivity is iOS only, I believe the best way to approach this is to use BLE, which is supported by both platforms (some better than others).
On iOS a device can act both as a BLE Central and BLE Peripheral at the same time, on Android the situation is more complex as not all devices support the BLE Peripheral state. Also the Android BLE stack is very unstable (to date).
If your use case is feature driven, I would suggest to look at Frameworks and Libraries that can achieve this for you, without you needing to build it up from scratch.
For example: p2pkit.io or google nearby
Disclaimer: I work for Uepaa, developing p2pkit.io for Android and iOS.
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 2 years ago.
Improve this question
This is kind of wide question, I found many information about this topic.
Possible technologies
Bluetooth
GameKit iOS only?
Bluetooth P2P library, with Wi-Fi and GPS?
Wi-Fi
Wifi Direct?
Bonjour zeroconf?
Neither of these does currently have a fully-implemented peer-to-peer library, or I haven't found such.
In fact I'm not interested in any kind of gaming library (and I don't target such issues)
Questions I'd considered
Peer to peer connection in android
Android since API 14 and no support for cross-platform usage
Android Peer-to-Peer technolog
ANI (https://github.com/pocmo/Android-Network-Intents) only network intercepted
DIAL,MOVL only wi-fi
Android Peer-to-Peer Connection
C2DM/GCM requires mobile data
Can Android do peer-to-peer ad-hoc networking?
Direct Wifi only
Peer-to-Peer video from iOS to Android?
Requires network data and server
http://forum.unity3d.com/threads/141469-Wifi-Bluetooth-Multiplayer-on-iOS-and-Android
GameKit is compatible only with other GameKit
https://www.alljoyn.org/docs-and-downloads/documentation/alljoyn-android-environment-setup-guide-rev-d
Bluetooth is not well supported, and requires rooting of device.
I'd like to efficiently communicate between as many devices as possible, without need of using mobile data (3G,HS*PA,LTE) or WIFI AP as intermediate point.
And not connecting people over large distances, really just like a PAN over Bluetooth.
Thus, what features I'd require to have
Totally OFFLINE (not requiring any mobile data services or wifi AP)
Cross-platform compatibility (Android, iOS)
Mobile OS backwards compatibility (Android since 2.3, iOS since 5.1.1)
Features I'd like to have
Route optimization (OSPF, MME, ...)
Not requiring devices to authorize to network (see Android insecure BT RFCOMM)
Possible wrapping up-to tens of users (20-30 max imo, or more if possible)
If needed, network could possibly choose its own leader (server node) ?
Is there currently anything I could use for mentioned features?
I know google just came out with a cross platform api for ios and android devices to communicate with each other. I don't know what you're exactly looking for but this one lets you pass small binary payloads between Android and IOS devices. they don't have to be on the same network at all either or connected to the internet. I'll include the link just check it out.
https://developers.google.com/nearby/messages/overview
Open Garden is developing this sort of technology and implement it in their app, Firechat. Testing the app, we found that Android-to-Android connections worked only over Bluetooth, iPhone-to-iPhone worked with bluetooth or wifi, and Android-to-iPhone only works if the phones are connected to the same network.
Here's a link to their sdk which should be out soonish: https://opengarden.com/sdk
I'd look into WebRTC datachannels which has native support for both iOS and android. You can also include desktop browsers as peers with WebRTC.
Currently only OpenGarden's FireChat is one of the only major players doing this. They do provide a mesh-kit sdk which currently I think you need to Apply for.
There is another project which has been kinda of shakey, but I heard was suppose to have a release coming really soon: The Thali Project
I know this has been asked many times, but things seem to evolve very fast and the answers seem outdated.
Is there a way to let iOS and Android communicate via a Bluetooth RFCOMM channel? Maybe opening sockets?
Unfortunately, this is impossible. RFCOMM is NOT supported on iOS unless the communication is encrypted through one of Apples' proprietary encryption chips. Since Android used "standards compliant" Bluetooth, and not Apple-encrypted Bluetooth, this won't work.
This question already has answers here:
Is it possible, in principle, for an Android device to interface with an iPhone over Bluetooth/GameKit?
(7 answers)
Closed 9 years ago.
First of all I am an Android developer, so the question goes to all the iOS developers.
Is it possible to achieve an Android <-> iPhone/iPad direct communication?
Some claim it is not possible, others claim it is.
I guess two possible technologies would be Bluetooth and/or Wi-Fi Direct.
Wi-Fi Direct is not recommended because it is not supported by Gingerbread and as far as I know, it is not supported by iPhone either (maybe iPhone 6, as I have heard from rumors)
It is already known that Bluetooth communication is achieved between iOS devices using GameKit and here is a reference.
I don't understand what is so special when communicating with GameKit??
Are the messages wrapped in some way with extra bytes at the beginning and ending of the message? Fine, we can wrap the messages the same way in Android!
Are the messages encrypted?!! And if so, could we decrypt them when they are received in an Android device?
Any ideas, workarounds, or other hackerish solutions are mostly welcome!
There are three frameworks available in iOS using which you can develop the bluetooth applications:
1. GameKit: This is the publicly available framework . But using this you can only establish and communicate between only two iOS device. So this framework having its own limitations .
2. BluetoothManager: This is private framework .I used this framework to discover the non iOS devices . I have established the connection also . But cant able to do the data exchange. I think it is still under development. For the reference you can refer this link
3. CoreBluetooth: This is also the public framework. This can only discover BLE enabled devices . I have successfully used this to transfer the data between the BLE enabled devices.
iOS does not implement any standard Bluetooth protocols that would allow it to communicate with other OS'es. GameKit is proprietary and if it were easy to hack it then people would have already done so (and Apple would have closed the hole).
Bluetooth LE is only supported by few Android devices (it is not in AOSP yet) so it is not really useful yet, even if it did support peer-to-peer.
I've read that it is possible to do what you are after via Wi-Fi direct, e.g. with this library:
https://www.alljoyn.org/
It says that it supports both Android & iOS - I haven't tried it myself, but it appears to do what you are after.
For devices on the same local network, Bonjour (a.k.a. zeroconf) can be a good way for processes on different machines/devices to discover and interact with each other.
See apple bonjour for android for some pointers to an Android implementation of Bonjour.