Skip to main content

which java mobile device to choose

5 replies [Last post]
topcoder1
Offline
Joined: 2008-12-09
Points: 0

Hi folks,
I need to write an custom offline application that will be able to sync with
the pc to transfer its data. The app provides some data entry
capability, then the user connects it to the pc and view these data in
a desktop version of the app.
Which mobile device would be the best choice?
I researched several mobile devices and not sure which one to choose? Gphone, BlackBerry smartphones, palm, or others?
Which one provides the best interface for syncing with pc and proprietory data transfer?

Secondly.
What is the typical methodology for developing driver to sync the
mobile device and the pc(assuming its windows based)? Do I need to run
a service
app on the pc to listen for physical connections and then start a
desktop app to acquiring data from the device? How will my desktop app
initiate conversation with the mobile one? Or is there a higher level
framework provided for this purpose?

thanks!

Reply viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
sfitzjava
Offline
Joined: 2003-06-15
Points: 0

At first I thought you had developed the sync part of the app and were asking what markets to go into, but then you started asking about sync programs for devices. So I will assume you have data on your device, and need some way to get it back to the desktop and start your desktop app.

Sadly Palm was the big thinkers in that realm. I say sadly because they have slowly been slipping into obscurity. (ok they have picked up speed here since the folio.) But they did not have a javaME VM for the device any longer. I am assuming since this post is on Java.net's Mobile and Embedded forums that we are talking about a JavaME app.
Windows Mobile devices have ActiveSync, but they too seem to be having lackluster marketshare compared to RIM / IPhone.

The Blackberry has a desktop sync app, and has an SDK to hook into the synchronization servers:
http://na.blackberry.com/eng/support/docs/subcategories/?userType=21&cat...
But as with Blackberry it is all about the enterprise and servers, so their solution is a bit large and seems to require a server.

You might look at USB support and build a bit of code into your client that sends data out the comm port, then have your desktop app listen on a USB/Comm port? It would be simpler and more portable. Something that even feature phones could use.
For this I would suggest SonyEricsson phones. They seem to be the most consistent and forward thinking in their VMs, and provide USB cables with most of their phones to consumers. Nokia & Motorola would also have reasonable consistency in VMs.

I think if you look at the market and support you are willing to offer you will find the best phone for your needs, and then you will have a better focus on what type of syncing technology you look at.

-Shawn

topcoder1
Offline
Joined: 2008-12-09
Points: 0

Hi thank you so much for the explanation. I will do more research on SonyEricsons.
Let me explain my project a bit more. There's no market consideration, doesn't matter if the device is popular or not. The audience users are decided. We will deliver the device and accessories to the users. Will not use wireless/ internet connections. so I guess I can't use blackberry synchronization server, right?
I can sync my device two ways, usb, sd card.
Based on these requirements, what do you think is the appropriate phones to use? What do you think of the Gphone?

sfitzjava
Offline
Joined: 2003-06-15
Points: 0

Ok, if Wireless/Internet connection is out (which for personal data sounds safe), then blackberry sync server is out. I wish RIM had made their desktop app more like Palms (I haven't looked into that much so maybe it does, but I've not seen anything on that.)

I've not seen what services the G1 (android phone) has to offer, but I would think with the Linux OS in there that RSync would be an option. I have not heard of a real sync solution being offered either for the G1 or by virtue of the Android specs. However there are lots of Linux sync and backup software so with a USB cable and access to low level app operation I would think that would be as good as any solution. Also since the Java on Android is more of an SE style then you should have access to Runtime.exec() to launch a commandline process like RSync. I would hope there was security on the G1 so that you couldn't just USB cable it up and RSync from the desktop. I hope they have some password security stuff.

The SD card is kind of "sneaker-net"-ish, but a viable solution. Many phones have the ability that when you connect up via USB the SD card is mounted like a drive anyway, so that would be possible to save your information using the filesystem (PIM) jsr APIs, but then anyone that gets access to the device could in theory grab your information. There are features on the Filesystem API to hide the files which might be good for security reasons.

Hope that helps.

-Shawn

topcoder1
Offline
Joined: 2008-12-09
Points: 0

A user scenario for syncing I have in my head is this:
1.user plugs in the phone into the desktop pc via usb
2.an option menu popup asking user if you want to open it using MyCustomizeApp, or automatically open it without even give an option menu. Do I have to register a windows service to listening on usb?
3.if G1 or BlackBerry is mounted as a drive, then I need to register an application to open this kind of file related to my app, right?

thanks!

sfitzjava
Offline
Joined: 2003-06-15
Points: 0

Okay, now you are moving into the realm of Desktop systems, and really out of the Mobile&Embedded arena.

However how does this sound. Since you brought up Window, you could have a auto.run file (or whatever they call it) that when you plug in your usb phone cable could auto run and start your desktop application. I have no idea if that would work, but it just came to me as a possible and very easy solution. Your phone app could easily enough write the autorun in the root of the memorycard file system. Now this might only work on a few phones, and the possibility is the user could deactivate the autorun feature. Also this would not work on Linux or Mac, but you may not be looking at supporting other OSes.

So the harder solution would be as you said, a service which was called when the USB phone cable is plugged in. Here is the thing, you will need to register for a given device, like a Samsung M520, or BlackBerry 8310, or whatever phone you are going to support.
That way your app doesn't start when someone plugs in a standard USB drive or an SD card reader. This may run in conflict with other software that came with the phone. SonyEricsson has a PC Suite app that triggers on phone connection via USB so that it can sync address book, and music. Blackberry has their own Desktop app that will start when their phones are usb tethered. So there are some hurdles you will have to look at when designing the solution.

Let us know how it works out for you.

-Shawn