API to programatically create wi-fi hotspot - Android Software Development

All,
I'm new here. I've heard great things about these forums. I'm interested in developing an application that would require creating a wireless network from the device. I know this functionality is built into the OS, but I don't see an API to do this.
Can anyone point me in the right direction? If possible, I would like to have access to such features as SSID name, authentication type/password (I think I read WPA2 is the only one supported, which is fine) and channel.
I recall reading that Google would make public any API they use in their applications, so I imagine this would fall into that category (Froyo "hotspot" functionality).
Thanks in advance for your help.
Dan Bucholtz

Anybody? Bueller?

Theres no public API but you can use reflection.
Heres a class that does the job for you (also you can find an example Application there):
http://www.whitebyte.info/android/android-wifi-hotspot-manager-class

jypdTonga said:
Theres no public API but you can use reflection.
Heres a class that does the job for you (also you can find an example Application there):
http://www.whitebyte.info/android/android-wifi-hotspot-manager-class
Click to expand...
Click to collapse
This works perfectly, thanks so much for sharing!

Related

TyTN cellid?

Hi. I am writing a freeware social networking application based on location services ( http://www.fightersoft.ro/mts/index.htm ). Although many devices are supported, it seems that the HTC TyTN isn't. To that end I acquired one and now I am on the quest on getting the cellid in my application.
The approach that should of worked was the COM port. However, no matter what COM port I open, I get a create file error. I am guessing that maybe the internal modem uses a weird port name such as COM550 or other letters instead of COM. I know that another way of getting the cellid is by using ril.dll (or even getting the handle to the gsm modem com port). However, in WM5 this is not documented at all on msdn.com - BUT for WM6 there is documentation.
Firstly, I want to ask anyone if they have extra information about this issue and secondly if by upgrading to WM6, the using the COM port approach works from the box (usually COM9)?
hi, I tryed many programs, which have actually support for cellid information, but no one work on herm, no matter if it was WM5 or WM6. on all phones, I had before it worked correctly... phone alarm also have this functionality, but shown only something like 00-00...
This is so frustrating. Every mobile device with GSM capabilities has a GSM modem insinde. That modem SHOULD be accesible from the OS by the means of COM ports. My guess is that this port is hidden or under a different name than the rest of the HTC devices where it resides on COM9.
CommMgrPro shows Cell Id and Location Area Code correctly on TyNT
I started this thread in the hopes that people will contribute with ideas towards getting this task done. Can you reveal any technical information on how you get the cellid information?
stargatesg1 said:
I started this thread in the hopes that people will contribute with ideas towards getting this task done. Can you reveal any technical information on how you get the cellid information?
Click to expand...
Click to collapse
Sure. Ril.dll gives you access to this information and works properly in WM5-WM6. And technically is easier than manager serial drivers......
Documentation isnt included in WM5 so it isnt "official" but realky It is included. The only problem for "not official" issue is you wont get support from microsoft....
Ask me what you want...
stargatesg1, if you have searched the forum, you'd already have the answer. For instance, this thread:
http://forum.xda-developers.com/showthread.php?t=280476&highlight=cellid
has a reference to RIL API. And I do remember I told you this some months ago in your another thread...
Here it is:
http://forum.xda-developers.com/showpost.php?p=1040464&postcount=27
It was at October 26 last year!
Basically I only need the cellid and the lac. I found that msdn.com offers documentation for ril.dll for WM6. This also works for WM5?
From what I learned from msdn.com is that I should do a ril.initialize first and then I should get the cell info using a fuction that I can't remember right now. Is this approach correct?
Lurker0, I know about this approach (I have mentioned it in my first post) however, I need more information because c++ native is not my primary envoirement for developing. That's why I kept searching for a way of getting the lac-cid from com ports so that I could do it directly from managed code.
stargatesg1 said:
Basically I only need the cellid and the lac. I found that msdn.com offers documentation for ril.dll for WM6. This also works for WM5?
From what I learned from msdn.com is that I should do a ril.initialize first and then I should get the cell info using a fuction that I can't remember right now. Is this approach correct?
Click to expand...
Click to collapse
Exactly. I downloaded Platform builder to have includes and libraries.
1) Initialize Ril
2.a) Request Position explicitally using a RIL_gettowerinfo
2.b) When you initializa Ril you can pass a callback to be notified upon location changes....
Did you read the source code for RIL interface that I pointed you to?
danielherrero, I see. Regarding the callback function is not neccessary in my app - the user or the app set on auto mode searches for changes in location. Thank you very much for your info.
Lurker0, yes I did, but like I said, I am not a very experienced c++ programmer and I need some documentation to get me started. I am also very greatful for your help and I am sure that I will use information from rilclass.cpp.
Thank you both, I will post back with the results as soon as I will have any.
Good luck
Hi StargateSG,
Did you succeeded in getting MTS working on Tytn?
Rgds
I had to leave the country on a business trip. I'll get back in a few days and I will start working on the problem.
danielherrero said:
CommMgrPro shows Cell Id and Location Area Code correctly on TyNT
Click to expand...
Click to collapse
Does nothing on the Blue Angel.

Non GPS location WM6.1

Hi I'm developing an application for WM that will use location. I don't think I will have too much trouble with implementing GPS but does anyone know of any information to get the devices rough location without GPS using GSM towers or however google maps 'my location' works when GPS is turned off.
Also a quick question I have an idea for what I think is a simple (not related) application and I think such a useful idea that I'm surprised it hasn't already been made. My question is if I ask about how I may go about creating the application is there any chance of someone thinking its a good idea making it themselves and somehow copy writing it so I can't make it myself?
many thanks.
Just bumping in case anyone can help.
As far as I know GSM triangulation only works when your service provider allows it, which is a rarely the case. Google uses the internet via GPRS or WLAN to estimate a user's position. So you'd have to find out how to get the node information to display it on a map.
edit: try to use IP tracing
I think Google finds your location from your CellID. Using the devices that have both GPS and Google Maps installed, it builds up a CellID database which is used to locate phones when no GPS is available.
You can do something similar by a) getting the device CellID and b) using the OpenCellID service to "translate" the CellID to a location.
Look at this:
http://dalelane.co.uk/blog/?p=241
And this:
http://www.opencellid.org/api
Also check out these threads by joubertvasc, he's using CellID and the OpenCellID APIs in his programs, and if I remember correctly they're open source, so those should help you a lot.
http://forum.xda-developers.com/showthread.php?t=394203&highlight=cellid
http://forum.xda-developers.com/showthread.php?t=456626&highlight=cellid
ALSO! Next time please ask your question here:
http://forum.xda-developers.com/forumdisplay.php?f=456
Thanks guys you have given me loads of great information to be getting on with. Sorry about posting in the wrong place didn't notice the Q&A section. Thanks again.
I tried to reverse engineer the protocol used by Live for it's location server and I posted my results here. I haven't indulged any further since things have gotten busy around here but it's a good start.
Google Maps lookup service has already been reverse engineered by a guy on code project here.
I've also looked at Fire Eagle's implementation based on wireless hotspots and it uses skyhook.
Luis Espinosa's TrackMe also queries multiple cell id databases, you can even choose which ones you want to draw from (Google, OpenID, etc). His code isn't open as far as I know but he might be willing to answer some questions.
http://forum.xda-developers.com/showthread.php?t=340667
you guys are great thanks so much for the links I'll be sure to upload my program here first if its any good that is.
Is there any way to use Google's location services? The code project link is down :/
DeadVirus said:
Is there any way to use Google's location services? The code project link is down :/
Click to expand...
Click to collapse
No one? :/
Post #19
http://forum.xda-developers.com/show...=725568&page=2
badasschris said:
Thanks guys you have given me loads of great information to be getting on with. Sorry about posting in the wrong place didn't notice the Q&A section. Thanks again.
Click to expand...
Click to collapse
I tried to reverse engineer the protocol used by Live for it's location server and I posted my results here. I haven't indulged any further since things have gotten busy around here but it's a good start.
Google Maps lookup service has already been reverse engineered by a guy on code project here.
I've also looked at Fire Eagle's implementation based on wireless hotspots and it uses skyhook.

reverse bluetooth tether?

Hi.
I'm trying to use my G1 with the bluetooth pan network from my computer or from my mogul (which has an unlimited data plan) to go to the internet instead of using wifi to be more energy efficient.
So far, using wifi tether's bluetooth option, I manage to establish a pan network between my G1 and the computer running windows. However, traffic is not routed properly, I get "network unreachable" from the terminal when I try to ping something outside the local pan network.
Any ideas?
you cannot access the interwebs on your G1 from a network on your computer. you cannot reverse tether. it is not possible at this time, please people stop posting about this stuff
if you had searched you would have seen that it can't be done and you would have found a thread where theyare trying to get it working
I know it is not possible at this time, hence my post here.
I need someone with linux networking knowledge to have a look into this, the android platform is a bit peculiar to me, ifconfig is behaving differently on it then it does on a regular linux distro. I need help setting up the right dns entries, figuring out where they are stored in Android (resolv.conf? a property set using setprop?), etc...
The idea is to have Android connect to an existing bluetooth access point. Everything is there to do it, pand is working, a virtual bluetooth network adaptor can be created, I can even give it a proper ip address and I manage to ping it from the access point and I can ping the access point from android...
This is the perfect forum to post such a question.
Anyone else with a more useful comment?
stanelie said:
I know it is not possible at this time, hence my post here.
I need someone with linux networking knowledge to have a look into this, the android platform is a bit peculiar to me, ifconfig is behaving differently on it then it does on a regular linux distro. I need help setting up the right dns entries, figuring out where they are stored in Android (resolv.conf? a property set using setprop?), etc...
The idea is to have Android connect to an existing bluetooth access point. Everything is there to do it, pand is working, a virtual bluetooth network adaptor can be created, I can even give it a proper ip address and I manage to ping it from the access point and I can ping the access point from android...
This is the perfect forum to post such a question.
Anyone else with a more useful comment?
Click to expand...
Click to collapse
[MORE USEFUL COMMENT] post in the threads that are already discussing this topic rather than posting a new thread[/MORE USEFUL COMMENT]
You use the term "linux distro". Now, I know I may be beating a dead horse here, but linux is just the kernel--the rest is GNU software. Many things are going to behave differently on Android.
Exactly, what works in Fedora 10 possibly will not work in android... (and thats giving some ambition there.....)
that's exactly why I am asking here instead of elsewhere.
To tubaking182 : the really usefull answer would have been to give me a link to the right thread instead. The search features of this forum sucks.
Thanks anyway.
Hi stanelie,
I too am very interested in doing this VERY same thing. I've also searched and come up empty handed. If there is anyone out there with more information that could help please feel free to post. Thanks in advance.
I'm sorry some here do not like people asking questions but I too would very much appreciate REVERSE BLUETOOTH TETHER functionality for my Android phone. Despite what tubaking182 so very helpfully writes above (thank you ever so much!) there remains no EASY solution for this.
I will happily pay for an easy to install, reliable Android Market app that does this. I think lots of others will too.
So that there is no misunderstanding I wish to connect my phone as a Bluetooth PAN client to a Bluetooth PAN server. The server functionality is NOT required.
Thanks,
Paul

Android basic WiFi tether - new project

Hello everyone,
I'm a computing student and Ive got the task to develop a basic version of the WiFi router found here: http://code.google.com/p/android-wifi-tether/
Ive learned to program in Java during my 3 years of college and I consider that Ive got the basics covered but Im really bad at programming.. I am willing to learn a lot more to complete this project and in the process Im also planning to learn some serious programming skills considering the complexity of the application development.
Can someone please bring some light on this and help me with it? I actually dont even know where to start coding for this. All I managed to do in the last 24h is to find the below websites but I dont know how to put everything together and start coding. Ah, and I want to mention that once I finish it I will share it with the open source community, not looking for any profit. Its just a college project for me. Thanks in advance for any help that anyone can give me!
Android Developers
http://developer.android.com/
Wireless Tether for Root Users (Opensource)
http://forum.xda-developers.com/showthread.php?t=486767
Tethering my laptop with android
http://forum.xda-developers.com/showthread.php?t=577590
Tetherbot
http://graha.ms/androidproxy/
Tethering VIA USB - Install and troubleshooting
http://forum.xda-developers.com/showthread.php?t=443025&highlight=tether
tether Wifi
http://www.androidactivity.com/tetherWifi.html
iptables
http://www.netfilter.org/projects/iptables/index.html
Dnsmasq
http://www.thekelleys.org.uk/dnsmasq/doc.html
and of course wikipedia
http://en.wikipedia.org/wiki/Tethering
Well this is a functionality scenario for it. Id appreciate if one of the experienced programmers would give an opinion on it. Thanks!
#1 User starts the program by tapping the app icon.
#2 Code to check for Internet connection over GSM network (check gsm state. if off, go to 3. if on go to 7)
#3 Code to send instructions to the GSM modem to establish an internet conection.
#4 If the connection cant be established due to various technical errors like no signal, wrong APN settings etc then 5
#5 Code to show info message on the screen to inform user
#6 Once the device has a valid internet connection(check) then 7
#7 Code to show settings to user and allow customization of SSID (network name). [and security key(optional for now, we'll do it later if we have time)]
#8 The user presses the start button.
#9 Code to activate the wifi card in adhoc mode and broadcast the adhoc chosen SSID
#10 Code to accept connection from a valid device and communicate with it over wifi
#11 Code to share the established internet connection over GSM network with the device connected over wifi
Hi!
I'm one of the authors of "Wireless Tether for Root Users".
What means "a basic version of the WiFi router"?
You know that most wifi-interface-drivers of android-devices do not support master-mode which would be mandatory to implement a "wifi router/access-point" (that's the reason why we support adhoc-mode only)?
Harry
harry_m said:
Hi!
I'm one of the authors of "Wireless Tether for Root Users".
What means "a basic version of the WiFi router"?
You know that most wifi-interface-drivers of android-devices do not support master-mode which would be mandatory to implement a "wifi router/access-point" (that's the reason why we support adhoc-mode only)?
Harry
Click to expand...
Click to collapse
Hi Harry, I appreciate the reply, thanks a lot!
"a basic version of the WiFi router" means a functional application that will run on an android phone (hopefully not rooted), will accept an ad-hoc connection with another wifi device over wifi and share its built in Inet conneciton with the device that connects to it. If I manage to get this running within 3 weeks I will complete the project in time.
I didnt know about the android wifi-interface-drivers..I was planning to try and develop this (hopefully successful app) into a proper wifi router (the full version) as my last year project, but now that plan is down the drain
Could you please help me start this? Where did u start when u actually started coding for this project? Any advice you can give me will be very welcome!
Cheers m8, have a good weekend!
harry_m said:
Hi!
I'm one of the authors of "Wireless Tether for Root Users".
What means "a basic version of the WiFi router"?
You know that most wifi-interface-drivers of android-devices do not support master-mode which would be mandatory to implement a "wifi router/access-point" (that's the reason why we support adhoc-mode only)?
Harry
Click to expand...
Click to collapse
Hi Harry,
By ad-hoc mode do you mean that the phone has to be rooted?
My understanding is that there is no way to have GPRS/3G running at the same time as a WiFi connection on the normal Android OS on a non rooted phone?
@atl4ntys,
Nice to see another Irish developer on Android
What your trying to do in 3 weeks seems like a big task and the normal Android SDK wont be much help for the reason I have stated above unless you root the phone.
cheers draffodx, I appreciate the interest!
Abt your question, to my knowledge wifi can run at the same time with 3g on a stock non rooted phone but it will not run in adhoc/ap mode. Unless some found a workaround that.. I'd prefer to develop a very basic app that will run on any android but if it proves to be an impossible task (also given the dev time available) then I will be happy with a function one on a rooted android. Dont need security and fancy graphics I just need it to work, so Im sure between me and my project partner we'll get it done (hopefully with a bit of help from the android devs)
Have you got any resources for how to run 3G and Wifi at the same time?
Its something I need to be able to do and from a few days research it seems that the OS only switchs between Wifi and 3G and never runs both at the same time.
From the SDK API's I cant find anything allowing me to turn both 3G and Wifi on.
Can you also define what you mean by adhoc/ap mode?
Thanks
draffodx said:
Have you got any resources for how to run 3G and Wifi at the same time?
Click to expand...
Click to collapse
No, not yet.
draffodx said:
From the SDK API's I cant find anything allowing me to turn both 3G and Wifi on.
Click to expand...
Click to collapse
I havent looked into it properly yet. Maybe Harry will answer or if not, try here: http://forum.xda-developers.com/showthread.php?t=474470
draffodx said:
Can you also define what you mean by adhoc/ap mode?
Thanks
Click to expand...
Click to collapse
Adhoc is computer to computer connection, without an access point. Info here: http://compnetworking.about.com/cs/wirelessfaqs/f/adhocwireless.htm
ap is an access point
The difference is(wiki):
Wireless Access Point vs. Ad-Hoc Network
Some people confuse Wireless Access Points with Wireless Ad-Hoc networks. An Ad-Hoc network uses a connection between two or more devices without using a wireless access point: the devices communicate directly when in range. An Ad-Hoc network is used in situations such as a quick data exchange or a multiplayer LAN game because setup is easy and does not require an access point. Due to its peer-to-peer layout, Ad-Hoc connections are similar to Bluetooth ones and are generally not recommended for a permanent installation.
Internet access via Ad-Hoc networks, using features like Windows' Internet Connection Sharing, may work well with a small number of devices that are close to each other, but Ad-Hoc networks don't scale well. Internet traffic will converge to the nodes with direct internet connection, potentially congesting these nodes. For internet-enabled nodes, Access Points have a clear advantage, being designed to handle this load.
Thanks for that atl4ntys!
If you get wifi & 3G working at the same time let me know it would be very interesting.
Good luck with the project
draffodx said:
Thanks for that atl4ntys!
If you get wifi & 3G working at the same time let me know it would be very interesting.
Good luck with the project
Click to expand...
Click to collapse
hey draffodx, wifi and 3g do work in the same time but the wifi works in client mode not adhoc. the catch is to find out how to get it to work in adhoc mode while an inet connection is established over gsm
*1st post edited. Added possible functionality scenario opinions anyone? Thanks!
Hey atl4ntys,
How are you getting on with this?
draffodx said:
Hey atl4ntys,
How are you getting on with this?
Click to expand...
Click to collapse
hey draffdox,
I managed to get it working in the end but I had to base my code on harry's 9.3 http://code.google.com/p/android-wifi-tether/source/browse/#svn/branches/0.9.3
If u want to see my final report, wait a few days as I will upload it online somewhere.
cheers, have a good weekend!
atl4ntys said:
hey draffdox,
I managed to get it working in the end but I had to base my code on harry's 9.3 http://code.google.com/p/android-wifi-tether/source/browse/#svn/branches/0.9.3
If u want to see my final report, wait a few days as I will upload it online somewhere.
cheers, have a good weekend!
Click to expand...
Click to collapse
Thanks for that atl4ntys, excellent read, its a pity it still cant be done on a non rooted phone
Hey guys,
It's nice to meet some Irish People on this forum,
good luck with the project.
Sorry I can't add anything but I am an Android Developement newbie.(aswell as a java newbie)
I can't wait to see the app.
harry_m said:
I'm one of the authors of "Wireless Tether for Root Users".
Harry
Click to expand...
Click to collapse
Hi Harry, i'm using your software, all work fine except i have to use "proxoid" to re-write the user-agent. When not using it, no web surfing for my computer is impossible.
The problem is Poxoid is written in java, and slow down the internet connection from the phone. I'm downloading at about 100kB without proxoid, and only 20-30KB with.
I'm asking you if you know another program that does same thing (user agent rewriting) , easy to install for rooted android phones, or why not include that fonctionnailty to Wifi Tether?
Thanks for Wifi Tether, nice program !
is this - (the above posts)
a form of uma or gan???
mikob2d said:
Hi Harry, i'm using your software, all work fine except i have to use "proxoid" to re-write the user-agent. When not using it, no web surfing for my computer is impossible....
Click to expand...
Click to collapse
Hey mikob2d, I think its best if u send him a private msg or if u contact him here http://code.google.com/p/android-wifi-tether/
Don't think he's monitoring this thread anymore
Rptynan said:
Hey guys,
It's nice to meet some Irish People on this forum,
good luck with the project.
Sorry I can't add anything but I am an Android Developement newbie.(aswell as a java newbie)
I can't wait to see the app.
Click to expand...
Click to collapse
hey 2u2 and welcome here but I finished this project and will not release an open source or a commercial app. The project was way harder than I expected and I had to base my app on Harry's harry's 9.3 version of the app.
I sent u2 a pm with a link to the final technical specs. Hope you'll find the info useful

What Topic Do I Need To Tackle To Develop This Kind Of App?

The harvard university android app from google play store. (I can't seem to post any outside link yet for this account)
I want to create one for may school but I'm just starting to learn android programming, so guys I need your help on the topics that I need to study to create an app like that. I greatly appreciate any kind of comments. Cheers!
clonedaccnt said:
The harvard university android app from google play store. (I can't seem to post any outside link yet for this account)
I want to create one for may school but I'm just starting to learn android programming, so guys I need your help on the topics that I need to study to create an app like that. I greatly appreciate any kind of comments. Cheers!
Click to expand...
Click to collapse
Fragments, ListViews, JSON parsing (for communication with the web server to download news etc), Android SQLite databases (I suggest using this to store the information from the webserver locally so the app does not require a constant internet connection to view a news article for example), Google Cloud Messaging notifications, notifications, encryption.
There are lots more but these are some of the main ones. In addition I would not advise trying to copy the "look" or aesthetics of the Harvard application as it frankly looks disgusting, whoever designed that needs a course in UI design
any book suggestions?? im only studying at home and wanted to start studying android app development
m0nm0npalam0n said:
any book suggestions?? im only studying at home and wanted to start studying android app development
Click to expand...
Click to collapse
Android Application Development for Dummies and Learn Java for Android Development are 2 that I have in ebook form, though I can't say I've used them much as I don't really learn by reading books, more like looking at the source code of other apps and messing with it to see what happens
Android Application Development for Dummies goes through a wide range of topics including widgets, SQLite storage, possibly SharedPreferences (can't remember), ListView etc but does assume that you can at least follow what the sample code is doing - the sample code is commented but if you have not done any coding at all before then you probably should learn the basics of Java before reading it
Jonny said:
Android Application Development for Dummies and Learn Java for Android Development are 2 that I have in ebook form, though I can't say I've used them much as I don't really learn by reading books, more like looking at the source code of other apps and messing with it to see what happens
Android Application Development for Dummies goes through a wide range of topics including widgets, SQLite storage, possibly SharedPreferences (can't remember), ListView etc but does assume that you can at least follow what the sample code is doing - the sample code is commented but if you have not done any coding at all before then you probably should learn the basics of Java before reading it
Click to expand...
Click to collapse
thanks man! this really helps
Jonny said:
Fragments, ListViews, JSON parsing (for communication with the web server to download news etc), Android SQLite databases (I suggest using this to store the information from the webserver locally so the app does not require a constant internet connection to view a news article for example), Google Cloud Messaging notifications, notifications, encryption.
There are lots more but these are some of the main ones. In addition I would not advise trying to copy the "look" or aesthetics of the Harvard application as it frankly looks disgusting, whoever designed that needs a course in UI design
Click to expand...
Click to collapse
Thank you very much for the reply, I'm really thankful for the information that you share. Can you please clear this one for me?
I suggest using this to store the information from the webserver locally so the app does not require a constant internet connection to view a news article for example
Click to expand...
Click to collapse
clonedaccnt said:
Thank you very much for the reply, I'm really thankful for the information that you share. Can you please clear this one for me?
Click to expand...
Click to collapse
When you get data from a server to an Android app you use php for the server code - for example you can use php/mysql to run a search for calendar events in the database and return those events. Then you need to use php's JSON encode function to send the data in a JSON array.
The output should look something like this - this is the output of the calendar database for my school:
http://wgsb.cobainschofield.com/android_db/get_calendar.php (note this is not the live schools site, its the test server the guy who maintains the live site allows me to mess with err use).
You would then use a JSON parser class and an AsyncTask from within the app to "download" the content of the JSON array and then display it in a listview or textview etc.
Now obviously to get this information requires an internet connection yes? So every time someone wanted to check for an event on the calendar or read a news article for example they would need a working internet connection to receive the output of the get_calendar script, this is inefficient and bad design as it does not allow for offline viewing of the data.
Therefore what you can do is use androids SQLite implementation to create a local sql database then the first time you need to get the data from the webserver, you connect to the internet and get the output of the php script, the using the JSON parser class you store the information in the sqlite database then get the information from the database to display to the user.
By this way users can view news articles or calendar events offline and you only need to connect to the internet to refresh the information
I've uploaded screenshots in the attachments of how I've done it for my school's app.
That made it clear! Thank you very much.

Categories

Resources