Programming Accessible Software on Java Phones?
LostSinner asks: "My mother, who is blind, called me recently and asked if I'd be up for a challenge. She is supremely fed up with trying to use her current cellphone (a StarTAC) and is looking for a new one. Recently, she has heard about the newer Java-enabled phones. She wants me to write a Java program which will allow her to navigate the menus, place calls, and generally use everything available to us sighted folks that she can't currently use. Though there are a few aftermarket pieces of software somewhat geared towards this, the price and the functionality (or lack thereof) are both sticking points... and what's the use of having a geek son if you don't get any benefits, right? I plan to release the code and either give the software away for free or charge a nominal fee for it. It's new ground for me, but I love a challenge. So, is a Java enabled phone the best way to go? Are there already phones out there with this functionality built in? If Java is the best way to go, what service provider and/or phones does Slashdot recommend? Thanks."
What would a product for blind people involved?
Does she have vision problems and just needs large bold fonts combined with high contrast windows and buttons?
Or is the problem severe and she needs voice-activated device that is capable of reading to her via some text-to-speech mechanism?
The first problem seems like an easily solvable one provided you know enough J2ME/MIDP stuff. The second one I am not even sure where to approach.
Java has a very rigid security system, which works well on phones because users view them as a hardware device (a phone!) and not a software platform, and so they must be reliable and secure.
However, I would think that this would prevent you from replacing all the menus with your own code. Instead, you might want to get her something like this
For one, most Java implementations run entirely separate from the actual phone functions. You can't just replace the built-in OS.
What, exactly, could you do that makes it easier for a blind person to use? Every phone function is already accessed with a sequence of button presses. Type a phone number, hit talk. Memorize the order of people in your phone directory. On my phone, I can access nearly every function in one to three button presses, and seldom actually look at the screen. I can't see how your Java software would be able to do better.
...
I think that level of processing is not available to any developer... think of the havoc that would occue when some idiot used a ringtone installation to overwrite your phonebook with an overseas sex number.
That being said, if there is a way to do it, you'd want to look for documentation here:
http://java.sun.com/j2me/docs/
and here:
http://java.sun.com/api/index.html#j2me
Conformity is the jailer of freedom and enemy of growth. -JFK
I would rather go with Erlang-enabled phones. Java is too primitive language to develop AI in a micro-scale. Erlang, as a functional logical programming language will let much more for much less space. And, by the way, you will need some of AI methods, if you want to write the agent interacting with humans using non-standard methods: your agent has to adapt to human personality and it has to recognize and auto-fix human errors. No need to mention that you'd rather use some sort of speech control rather than a fixed set of pre-recorded phrases.
Less is more !
While I don't have an answer for your exact question, I do have an alternative that might be an option. The Alva MPO is a phone/pda for the blind. You can navigate through it by either audio (JAWS like application) or through it's braille display. Takes input through an 8-key braille keyboard. I believe it is a WinCE device, though I'm not sure what version it is running.
Again, this is just a tad bit overkill if all she needs is a phone. However, if she's looking for something more than a phone, this might be an option.
Every time a guy gets a threesome, somewhere in heaven an angel gets his wings. --Cary Tennis
I'd try a Treo600 instead, as you're much more likely to be able to get useful programming information from Palm/Handspring than from other phone manufacturers. You'll also be able to insert a memory card to hold your app and all the sound samples you'll want for the spoken menus.
It's not out yet, but will be "soon", and you can start writing code today....
http://www.handspring.com/developers/index.jhtml
Or rather, try this general advice - try to get developer information for a bunch of handsets. See which one gives you the most. Make sure you can do what you want (e.g. dial, which I don't think you can from java phones due to the security model) and then go with that phone.
the subject pretty much says it, you can't access the phone on low enough level with the java implementations(the sandbox they work in isn't that free, so that you can run midlets without fear of them racking up your phone tab or sending information of your simcard&etc to some malicious hacker, kind of applets but with ability to connect where-ever the device allows, they even have their own seperate from other stuff store for storing information).
however, symbian allows for much lower level access of the device. sure the developing is a bit harder but that's the price you have to pay(it's not _that_ hard if you're familiar with c++ and the community is building up nicely so help is available).
symbian phones include series60 from nokia(7650,3650,6650&etc) and s-e p800 there may be others as well.
of these i'd recommend the 3650(even though she might not have use for the mmc card), the 'weird' number pad isn't that hard to use, don't know how adapting it is for the blind(i would guess pretty well adapting, should she want to train on it few hours, actually it should go pretty well, and the buttons with different functions are laid away from each other)
world was created 5 seconds before this post as it is.
There may well be someone who already thought about that. And even if not, your mothers case might just be what it takes to make them think about it.
The trick is, of course, how to find the right person to contact. I don't really have a good idea about that. One approach would be to find a generic Sun accessibility person (for example on the related Gnome mailing list) that seems to be a nice guy, and politely ask them for a tip on who to contact.
Programming can be fun again. Film at 11.
The Alva MPO seems to be exactly what this guy's mom wants.
It's better to be the foot on the boot than the face on the pavement. ~~ tkx Kadin2048
Talk about braille outputs on Pocket PC's reminded me of a slightly Offtopic but very Interesting idea I thought of.
I've always wondered if it's possible to make a side panel of a PDA (for example, the left side of a Clie, like the Jog Dial) have maybe a hundred little actuators and sensors that can make virtual controls like switches, dials, and sliders... it would be interesting...
Any ideas?
Tired of free iPod sigs? Subscribe to my blacklist
You're definitely going to run into problems trying to program this in Java, for now...
However, you can get pretty close to what you want in many current phones. They are designed to be used without requiring users to keep their eyes fixed on the screen -- since that tends to cause more car crashes.
The features you want aren't far off, though. I currently have a Motorola V60. No camera, no multiphonic ringtones... but it has voice recognition for the numbers in my phone book. I just press a button on the side of the phone and say "home" or "Jim", it repeats it back to me, and dials.
It takes one button press to get to the phone book, and as I scan through the names, it plays the audio for each one.
I can also make changes to the navigation menus (reorder main menu, reprogram shortcut keys, etc.); no programming involved.
It's not perfect, but she could definitely have a usable phone with minimal button pattern memorization. And if she gets lost, she just closes the cover and reopens it to start over.
I think the V66 (an even cheaper phone) has the same features, but the buttons might be too small to use comfortably w/o looking.
There are only 10 types of people: those who understand decimal, those who don't, and, uh, 8 other types I forget.
You haven't really specified the problem. "She wants to do what all of us sighted people do." What, make calls? That's easy. Is there anything else? If she just wants to make phone calls, find out how she wants to do it.
If she wants to dial the numbers, just get her a cheap Nokia "candy bar"-style phone and ensure that one or two of the keys are textured (I recommend "5" as one of them) for easy location.
If she wants to "look up" numbers, see about one of the voice-activated phones. Sprint definitely offers them, and probably other companies. With these phones, you press a button and say "Call Bob", and it calls bob's number. Programming's a bit tricky, but that's what sons are for, right?
Pay attention, too, to "handsfree" models. There's pressure on the cell phone companies to make models that are usable by drivers. That means simple, and usable without looking at the keypad. Sounds kind of like what you want.
Forward, retransmit, or republish anything I say here. Just don't misquote me.
The very old Sprint PCS phone, NeoPoint NP-100 I think was the model number, is pretty much exactly what you're looking for. The entire phone could be programmed for voice recognition for all of it's functions.
Last I saw them in stores, they were like $20-30.
"Champagne for my real friends - and real pain for my sham friends!" http://ericblade.postalboard.com/
1. Find a problem
2. Build a solution
3. PROFIT!!!!!!
Go for it and make money helping people!
I've got a 3g phone and the icons are pretty big but I haven't a clue of the needs of people who don't have 20/20 vision like myself so I'm not going to comment on that. (OT the other night I had a throughput of 640 kb/s using it as an USB modem, well impressive compared to GPRS)
I remember that wap phones allow you to write WML code that can dial and save numbers on the user's phone so you might not even need to write Java code. Don't know if you can do the same with cHTML.
Sorry, I misread the headline as how to make Java Accessible to Progammers
Jython
Welcome to the Jython homepage. Jython is an implementation of the high-level, dynamic, object-oriented language Python written in 100% Pure Java, and seamlessly integrated with the Java platform. It thus allows you to run Python on any Java platform.
There are places where the networks are not touching,and there are places where they are-Boeing's Lori Gunter
Sorry, I misread the headline as how to make Java Accessible to Progammers
Jython
Welcome to the Jython homepage. Jython is an implementation of the high-level, dynamic, object-oriented language Python written in 100% Pure Java, and seamlessly integrated with the Java platform. It thus allows you to run Python on any Java platform.
[I even previewed it, saw that the url was wrong but pressed submit without changing it!]
There are places where the networks are not touching,and there are places where they are-Boeing's Lori Gunter
I've been doing MIDP development for about 6 months now and I do not believe you could add much via Java that would help a blind person. If she truly just needs a phone, there are several with voice dialing, and Sprint phones have an optional voice command service. These would both be easy to use, but not to set up, for a blind person. If a Java solution is really what you want, you can do a lot more with MIDP 2.0 - for example, add voice annotation to your lists. I'm not sure how far that would get you though. Time and effort probably makes voice command the best solution - that and memorizing the menus. I recommend sprints tp2100/2200 (if you can find them). They aren't 3G phones (doesnt't seem like that should matter), but they are intuitively designed and have excellent tactile response. Damn sprint for breaking off relations with Denso!
of course...my 2 cents.
I work in the cell phone industry. From what I've seen, Nokia offers the most accessibility for developers wanting to write Java applications for phones. For several months now they have released SDK's and Development Suites. Looks like these would be farily easy to learn.
I'm not sure if Java applications will have access to items like the phonebook, or if they would be able to dial calls. I seem to remember they won't, its a security measure to make sure applications don't dial calls which could be charged for your bill (I didn't make the call, my hone did). I do believe, however, they would have limited access to hardware features such as a keypresses and the screen.
Grumpy Watkins, Grumpy Watkins, Grumpy Watkins, Grumpy Watkins, Grumpy Watkins, Grumpy Watkins, Grumpy Watkins, Grumpy Watkins, Grumpy Watkins, Grumpy Watkins, Grumpy Watkins, Grumpy Watkins, Grumpy Watkins, Grumpy Watkins, Grumpy Watkins, Grumpy Watkins, Grumpy Watkins, Grumpy Watkins, Grumpy Watkins, Grumpy Watkins, Grumpy Watkins, Grumpy Watkins, Grumpy Watkins, Grumpy Watkins, Grumpy Watkins, Grumpy Watkins, Grumpy Watkins, Grumpy Watkins, Grumpy Watkins, Grumpy Watkins, Grumpy Watkins, Grumpy Watkins, Grumpy Watkins, Grumpy Watkins, Grumpy Watkins, Grumpy Watkins, Grumpy Watkins, Grumpy Watkins, Grumpy Watkins, Grumpy Watkins,
Ruby Sleeps