I am creating an application which lists the available WiFi connections. Then user can select the appropriate WiFi connection for any network communication.
I saw plenty of links but nothing is useful. One says that using the HotspotClient class can get available networks. But I can't find any useful methods in that class.
I used following links
http://supportforums.blackberry.com/t5/Java-Development/How-to-scan-for-available-networks-for-device-from-application/m-p/519179/highlight/false#M105143
Scan for available Wi-Fi networks on BlackBerry
Related
I understand you can get the current connected Wi-Fi network using the CaptiveNetwork interface. I also understand that Apple has cracked down on scanning for networks. What I need is to be able to read the list of 'stored' SSIDs that the phone connects automatically to.
I am attempting to use the Wi-Fi network as a sort of location trigger, that changes functionality when the user connects to his 'home' network. Using CaptiveNetwork I can get the current network and allow them to save that name, but can I get the list of saved networks so the user can set locations without having to be at each one during setup?
I have a scenario of two P2P groups ,each with one AP-client pair.They are independent P2P groups.I am curious to know what will happen if the two P2P groups come close to each other?
TLDR;
The groups will not effect each other.
The WiFi Direct specifications states that devices must be in the FIND phase in order to find more peers to connect to, and even if they were, they wouldn't try to connect unless they were running an app that told them to disconnect from their current group and connect to a new group if they find one.
Two group owner devices can connect to each other if that feature is supported in the particular implementation of Wi-Fi Direct on the devices you are using, and if it supported by the Wi-Fi chip on those devices. According to this paper, it's possible for a device to be a group owner in one group, and a client in another group by time-sharing the Wi-Fi interface:
In order to act both as P2P Client and as P2P GO the laptop will
typically alternate between the two roles by time-sharing the Wi-Fi
interface.
On the other hand, it is impossible to have a group with two group owners. The Wi-Fi direct groups will still be separate from each other, there will simply be a group owner in one that is a client in the other.
According to this article
Some of the capabilities, such as concurrent P2P group and AP
connections, will add complexity to product designs at both the IC and
Wi-Fi subsystem levels. A product will have to maintain multiple MAC
entities to support concurrent operations and most likely will require
concurrent communications on multiple Wi-Fi channels. Clearly the
feature will be valuable, but will it be worth the extra cost required
to implement it? That’s up to the designer to decide. Over time, the
market use, or not, of those features will make that decision easier.
So as far as I understood basic mode is single p2p group per device and since device bound to one group it will not jump in immediately to another group.
Android Classes Reference can be find here
Attempt of implementation can be found here
if device supports more then 1 group it will registered by 2nd group manager as available peer and then any member of group can TRY to connect to device. Device should have some WPS like security or for mobile phone popup dialog.
More on security from Wikipedia:
Wi-Fi Direct essentially embeds a software access point ("Soft AP"),
into any device that must support Direct.[9] The soft AP provides a
version of Wi-Fi Protected Setup with its push-button or PIN-based
setup.
When a device enters the range of the Wi-Fi Direct host, it can
connect to it, and then gather setup information using a Protected
Setup-style transfer.[9] Connection and setup is so simplified that
some suggest it may replace Bluetooth in some situations.[12]
Soft APs can be as simple or as complex as the role requires. A
digital picture frame might provide only the most basic services
needed to allow digital cameras to connect and upload images. A smart
phone that allows data tethering might run a more complex soft AP that
adds the ability to bridge to the Internet. The standard also includes
WPA2 security and features to control access within corporate
networks.[9] Wi-Fi Direct-certified devices can connect one-to-one or
one-to-many and not all connected products need to be Wi-Fi
Direct-certified. One Wi-Fi Direct enabled device can connect to
legacy Wi-Fi certified devices.
The Wi-Fi Direct certification program is developed and administered
by the Wi-Fi Alliance, the industry group that owns the "Wi-Fi"
trademark. The specification is available for purchase from the Wi-Fi
Alliance.[13]
Please tell me in detail why it is impossible to send the data between two phones over GSM? I can find almost no information about this problem.
There are 2 points here.
Firstly, GSM is a mobile voice telephony system - plain GSM doesn't do data connections.
GPRS and EDGE are add-ons to the GSM network that allow data to be sent.
There are other kinds of wireless phone networks that also use a SIM and allow data to be sent (UMTS, LTE).
Secondly, when you establish a data connection with a mobile phone and a phone network, you are establishing an IP connection between your phone/modem and a gateway server in the operator's network. The gateway server allows you access to the internet (together with the DNS server etc, obviously).
This is similar to a computer plugging in a LAN cable and connecting to their ISP. But you can also connect 2 computers with a crossover cable, and configure them to have an IP connection directly. So what you are asking is, why can't I do the same with 2 GSM phones? what is the equivalent of a wireless crossover cable?
The reason is because GSM has no protocol to connect phones to each other. It only defines a protocol for phones to connect to a network base station.
To transfer data between 2 phones, therefore, you need a different protocol, one which will work between 2 peers. Bluetooth is a common such protocol, but it only works over short distances.
If you want to connect 2 distant phones, you can do this via a third party, like a website, to which data can be uploaded into the cloud by the first phone and downloaded by the second phone.
Or, you could establish a connection at the IP level via the internet, e.g. if one mobile device was a web server (the last sentence is only theorising).
See also this related question
EDIT: 3GPP Release 12 includes direct Device to Device communications. At the time of writing, it's still very new, and not yet commercially available, so the answer above still holds. D2D is designed for emergency services, eg if the network is damaged by a disaster, they can still communicate directly. But 3GPP suggests that it will be commercially available as well. From 3GPP news
There are also commercial benefits of D2D, with new applications building on the physical proximity of users being trialed by operators.
2nd EDIT: Apple has created a feature called Multipeer Connectivity Framework, which uses a mixture of WiFi networks, peer-to-peer WiFi and Bluetooth to enable short distance connectivity between iPhones when there is no GSM network.
NFC is another peer-to-peer technology for communicating between 2 devices, that is supported by some phones. More information here.
I have to iphone applications that they use two different networks. Changing network setting for each application is not user friendly. I want to do such thing as follows,
When application starts, it checks the availability of particular network (SSID) and popup a message to the user to permit to connect. Once user click on "OK" they it connect to that particular network.
Anybody has similar experience ?
How can I connect to given SSID using objectiveC ?
I've been reading for a solution to achieve app controlled networking, but it seems impossible without the use of Apple80211 private API.
The best i think you can do is with CaptiveNetwork.
With this you can register a list of SSID's for your device and it will suppress web sheet.
From the doc:
By calling the CNSetSupportedSSIDs function, an application can register a list of wireless network SSIDs with Captive Network Support, thereby assuming responsibility for authenticating with those networks. Typically when a user joins a captive network, Captive Network Support provides a web sheet that allows the user to authenticate with the network. If an application has registered the SSID of the captive network, however, the web sheet is suppressed, and the user can complete authentication in the appropriate application.
Is there a way to access the signal info of the devices that are attached to a wireless router? I was thinking that maybe that information is given in the router homepage, but my netgear router only gives me the IP and MAC addresses of the attached devices. Also, in case that this isn't possible with my router (DGN2000), are you aware of another device that gives that kind of information (even if it needs custom firmware to display it).
I want to make an app that collects the attached device signal data and I am stuck.
So I found the solution. Any router that can run on dd wrt firmware can access that data by navigating to "status" and then "wireless" in the router page. Another (and expensive) solution is the Apple Airport router, that gives that data via the airport utility.