Slashdot Mirror


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."

35 comments

  1. The product specs are a bit unclear by Anonymous Coward · · Score: 0

    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.

  2. I'm not sure MIDP is the way to go. by Dr.+Bent · · Score: 2, Interesting

    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

    1. Re:I'm not sure MIDP is the way to go. by mrlpz · · Score: 2, Informative

      Yes..but the software they're talking about are running on the 9200 communicators. Mind you, these units

      A) Are fast growing out of date with newer systems
      B) Aren't in implemented in Java, rather their OS is a flavor of the Symbian OS called Series 80.

      Personally, I think that a Symbian OS based phone would be the way to go. What you would have to do is record audio bits ( rather compressed I'm sure ), that would correspond to the most commonly used features of the particular phone that you're implementing this on. That way, when the user pressed a particular key, he or she would hear either something spoken to them that says what either the key means ( a number on the keypad ) or what the menu name they've just selected means.

      I think some of the newer series 60 phone "MIGHT" be ideal for this based on both feature set and price. A UIQ based phone is still in the $650+ range ( and 9200 communicators are in the $600 range as well ).

      Having your application run as a Symbian service would allow it to be "aware" of the state of the UI.

      Any way you slice it...it'd be a fair bit of work, and I'm sure that it must've cost Vodafone a pretty penny to get that software implemented even on that limited number of phones.

    2. Re:I'm not sure MIDP is the way to go. by vidnet · · Score: 1
      Personally, I think that a Symbian OS based phone would be the way to go.

      I agree. Most phones (apart from the very newest) don't have a java api for makings calls, sending sms, looking up things in the address book, things like that. You'd also have to implement your own menus if you ever got that far.

      I don't know Symbian, but judging from the parent it seems like a much better fit.

    3. Re:I'm not sure MIDP is the way to go. by mrlpz · · Score: 1

      well...there's Symbian, and then there's Series 60. Symbian is the OS, and Series 60 is the UI implemented on top of Symbian ( 6.1 in the case of most Newer Nokia Phones ). The reason I suggested that rather than Java is more because for things like Accessibility, and "closer to the base UI", designing and implementing his application that way, would best suit the purpose ( at least, as he's laid out his intentions that it should ). Either way, he's got a fair bit of work ahead. The amount of good documentation for developing Mobile Symbian applications is relatively scarce. Limited to 4 ( still in print ) books, two of which I've read, and one which I posted a review for on Amazon. Since his application isn't necessarily GUI-based, he'll have to learn both the Symbian OS arch as well as the niceties of Series 60. It'll most likely would have to have some sort of GUI applet to complement it ( for configuration, etc. ) so that a person can configure it for the phone and the user before they begin to use it.

  3. Harder than it sounds by cybermace5 · · Score: 2, Informative

    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.

    --
    ...
    1. Re:Harder than it sounds by TMLink · · Score: 2, Interesting

      I have a co-worker that is blind, and his biggest problem is getting lost. If the wrong key is pressed on accident, it sometimes takes several keypresses before he realizes that he's in the wrong spot and then has to figure out his way back to square one (and hope nothing has been messed up). Having everything said aloud would give him the ability to navigate as anyone else would have.

      Basically this guy wants JAWS for his mother's cellphone. Which would be really usefull should anyone ever put something out like this.

      --
      Every time a guy gets a threesome, somewhere in heaven an angel gets his wings. --Cary Tennis
  4. I doubt it. by duffbeer703 · · Score: 3, Informative

    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
  5. Erlang by axxackall · · Score: 1

    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 !
    1. Re:Erlang by RevAaron · · Score: 1

      Would we all rather have our phone run our preferred programming language and computing framework/environment?

      Call me nuts, but I'm taking matters into my own hands by developing Dynapad. It's Smalltalk- not Erlang- but it's still better than Java, although Java isn't hard to beat. (provided you're not talking about the number of millions of US dollars spent promoting and hyping it) I don't run Dynapad myself on any phones, just PDAs- but if I had a fancy smartphone- or one of those woefully crappy and discontinued cell-phone CF cards for the Zaurus, I'd be sitting pretty. :)

      --

      Working toward a usable PDA environment in the spirit of Newton OS: Dynapad
  6. Phone/PDA for the blind... by TMLink · · Score: 5, Informative

    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
    1. Re:Phone/PDA for the blind... by mrlpz · · Score: 1

      The Alva unit may be nice, but more than likely, it's considerably more expensive than he might be prepared to spend. ...Though I will wholeheartedly agree with you, that this unit appears to fit the bill ( especially since it's tri-band )..the question is...how much is it ? The website for it makes ZERO mention of how much DINERO ($$$) it costs.

  7. Try a Treo600 instead by Karl+J.+Smith · · Score: 3, Informative

    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.

    1. Re:Try a Treo600 instead by MooseGuy529 · · Score: 1
      ...all the sound samples you'll want for the spoken menus.

      I'm not sure if the phone's speakers can be used to play audio from software, or if the Treo 600 includes a "real" speaker; if not, sound effects/messages are pretty much out of the question, since on most Palm devices (other than a Handera and the newer Clies) the speaker is a simple tone-based one, akin to a PC speaker. Apps have been written to play sound, just like Microsoft wrote a PC Speaker Wave Driver, but the quality of both are horrible.

      --

      Tired of free iPod sigs? Subscribe to my blacklist

  8. can't do with j2me, go with symbian. by gl4ss · · Score: 3, Interesting

    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.
    1. Re:can't do with j2me, go with symbian. by exhilaration · · Score: 1
      Just wanted to second this.

      You can't do much with Java on mobile phones - you can't even access the filesystem, as far as I know. I've been using a Java web browser and a Java e-mail client on my Nokia 3650, and in response to my requests for more features (like attchments), the developer has told me that Java's security model prevents any significant access to the phone.

      Symbian would definitely be the way, especially on a Nokia phone. SonyEricsson has been uncooperative with releasing specs on their phones - they don't want people doing "bad things", like supposedly crashing GSM networks. Nokia, on the other, just wants to sell phones - I've seen applications that do just about everything on my Nokia 3650. You can download a all the development tools for free from Nokia's website.

  9. Ask Sun by __past__ · · Score: 2, Informative
    Fankly, I would try to find someone at Sun who bothers about this. Not only are they responsible for Java, but they also care a lot about accessibility - there are many related features in Solaris and CDE, and it's one of the major areas where they contributed to Gnome, for example. (i.e. there wasn't any kind of accessibility in Gnome/Gtk before, now there is the pretty good atk, all due to them).

    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.

    1. Re:Ask Sun by RevAaron · · Score: 1

      That's a great idea and all, but it really wouldn't get you anywhere.

      Why the hell would Sun be interested in helping you write software for a phone that let your blind mum make cell calls? Yes, it's in Java, but that's about where Sun's interest would stop. And a lot of people use Java, and most of them don't get hand-holding from Sun. At best, Java will say "umm, get the phone's SDK and some J2ME docs. Oh, and what you want to do really isn't possible within the confined environments available on cell phones. Thanks, and don't bug me next time."

      I mean, it can't hurt, that's for sure- I just don't know how much fruit this particular tree could pop out...

      --

      Working toward a usable PDA environment in the spirit of Newton OS: Dynapad
  10. Moderators, heads up. Informative!! by hummassa · · Score: 1

    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
    1. Re:Moderators, heads up. Informative!! by RevAaron · · Score: 1

      Except, this guy seems to want to do the programming himself. In Java. I hope the poster has the intelligence to realize that this Alva jobbie would more than fit the bill- and probably saving a lot of temporal-monetary units (assuming he bills at $10/hr or more). Let's hope that he doesn't think he can get buy buying some cheap barely-Java-capable phone with the hopes of hacking it in Java. It may be possible to code some Java, but with pretty much any phone, all of the important stuff isn't accessible with a user-level Java app or midlet. Especially impossible would be to hook into the current menus and setup for reading them outloud, etc etc.

      Alva MPO is the best option. Get one, man.

      --

      Working toward a usable PDA environment in the spirit of Newton OS: Dynapad
  11. Reconfigurable Physical Controls by MooseGuy529 · · Score: 1

    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

  12. Short term solution by jtheory · · Score: 2, Informative

    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.
  13. what does she want? by PapaZit · · Score: 4, Insightful

    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.
    1. Re:what does she want? by LostSinner · · Score: 1

      apologies for that. she can already make calls without much of a hassle. she wants to be able to use the address book, perhaps the calendar, and she really wants to be able to determine where in the menu system she is at any time. it's incredibly easy to get lost in all of the different menus and she doesn't want to have to power down the phone or close and reopen it just to start over.

  14. an old Sprint PCS phone by XO · · Score: 1

    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/
  15. ooohhhhhhh by Anonymous Coward · · Score: 0

    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.

  16. How to make Accessible Java by DrSkwid · · Score: 1

    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
  17. How to make Accessible Java by DrSkwid · · Score: 1

    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
  18. Java, voice command, etc... by Anonymous Coward · · Score: 0

    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.

  19. Nokia sdk by thenumberone · · Score: 1

    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.