Source i (link to git-repo or to original if based on someone elses unmodified work):

Add the source-code for this project on opencode.net

1
Become a Fan
7.0

Available as/for:
Description:
KDroid is a program which allows you to view your contacts and text messages on your computer over a wifi/usb connection. It also allows you to send text messages from your pc.

You need to install the apk on your phone to be able to sync your data.

Git repositories:
git://github.com/machtelik/kdroid-desktop.git
git://github.com/machtelik/kdroid-android.git

Any suggestions for the GUI? Maybe something like Kopete? Let me know..
Last changelog:

0.7:
- switched from udp to tcp
- added a few options in android app
- added dbus interface
- other bugfixes/small changes

0.6:
- fixed android service
- added command line options
- push new messages to the desktop
- other bugfixes

0.5:
- removed adb dependency
- added android application
- changed gui

0.2:
- added XML export

0.1:
- initial release


Ratings & Comments

40 Comments

Schiwi

i use kdroid with usb and i have to start adb manually. how about a button to make it easier? it could start an editable script containing adb start-server adb forward tcp:48564 tcp:48564 or something like this

Kn3cHt

Get the latest git version, i've added an option to start a command on launch.

Schiwi

very nice, thank you

dovidhalevi

Using USB, this is problematic, obviously. No Adb and probably no phone. Once the app has started, one must quit it in order to forward the port, that is, after connecting the phone. So some ideas? Maybe (after a delay), put up a dialog: connect phone, start adb, forward port. Only connect to the port after clicking OK. Note that as a regular app, there should be no problem. As a plasmoid, the init must return so a timer would be started instead and after the delay, put up the dialog. If not on localhost/usb (these might not necessarily imply each-other!), a dialog to connect the phone could be shown if connection not achieved. Cannot do it this way with the usb because the port will be busied.

Kn3cHt

I could add a setting, which if selected automaticly forwards the adb port and connects to localhost.

dovidhalevi

Now that I can get them, now to make use of them. Quickest might be an incremental search. Since there are several fields, the search might be "ored" -- the KDE addressbook works like this -- or an option to select.

Kn3cHt

The idea is good, i will add a filter to the contact list. Btw. if you use kaddressbook, you can use it to send text messages via kdroid.

dovidhalevi

Some nice changes! APK: Button is, as suggested, good addition, though text is confusing. "start" or "stop" says what I want to do on press. "startet" (should be "started") is current status. But after first use, I know what is happening. Did get a (bogus?) android process stopped unexpectedly error. Since app did not close, must refer to the service that I manually stopped so you may need to set some flag at this stage since there is no error. KDE: 1. Set to localhost. Adb devices finds phone, adb forward tcp:48564 tcp:48564 says cannot bind port. Does the app do this for me? What if I am not using usb? 2. Tried it anyway. Sent sms to this phone. Should fail. Got notification "unknown number" and the text in sync boxes and in KDE notifications. Can the program detect individual stati such as "busy," "not available," etc? 3. Sent two sms to family phones. No error or status returned. 4. Started sync. Button is now grayed but nothing has happened in a long time. No notifications. 5. Icon is now among the "hidden" system tray icons so does not appear unless I request these. Probably not appropriate. 6. System-tray might be an option. The app might be better a plasmoid (these can go to system tray now and take up less space there). Now, the akonadi data-engine is available and contacts can be synced to KDE.

dovidhalevi

Got some results! Restarted the adb and successfully forwarded the port. Sent SMS to my phone. RECEIVED two of them! Sent to my daughter's. Received that also so I guess the android message app shows a copy of sent message as well. In the "sync" boxes, get the same "unknown" which means no contact with this number (see below) but outgoing confirmations and incoming for mine, and the text. Bravo. Now the sync. I have lots of contacts including myself and my daughter. The sync yielded only four contacts. The only criteria I can think of as these are relatively recent or recently called but even these should yield many more items. Since these are bare phone numbers with no addresses or other information rather than the contact name, nothing appears to the right but I have no accesses other than the SMSs to test. So question is what indeed am I/should I be syncing and against what since sync implies two lists. I am obviously not viewing my contacts list.

dovidhalevi

Got it! The Android did weird things to the format of the name fields of contacts imported from previous telephone. The four have in common: NO characters other than letters, spaces, period (and I guess comma would be ok as well). Older ones have semicolons (don't ask me why) and slashed numbers, i.e. /1. Since such symbols could be manually entered as well, there is no reason they should be excluded. Take text received as-is. Any ideas on how to bulk-edit the cruft would be welcome, maybe some combo of google and plaxo. But I should see them all, not just the four. Interesting.

Kn3cHt

As you figured out, you first need to start adb to forward the port before kdroid binds to it. Most notifications won't work over usb, because it is not possible to start a tcp connection from the phone. So the android app can't connect to the desktop app, only the other way around. I changed the try icon to passiv mainly because of this post: http://aseigo.blogspot.com/2011/08/system-tray-icon-hiding.html What do you mean you recived two messages when you send one to yourself? Do you mean the notification on the phone? Weired that you only see 4 contacts, because it should transfer the complete database. Maybe all the other contacts stored somewhere else? As for the formating, i don't change it. I take the text the way it is stored in the database. The only thing i remove are newlines in the textmessage. The problem is i can't reproduce most of the bugs you are experiencing, it is working fine here (Android 2.3.5, KDE 4.7.0). I'll try to make it more reliable on other devices, but it is not easy, because i can only test/debug it on my own device.

dovidhalevi

1. Tray-icon: Assuming I am using the app to operate something on the phone, i.e., send sms, dial (should be easy to do as well), etc., I need the icon visible. Some examples: A printer plasmoid is on kde-look which hides its icon and shows it when printers are in use (except he does not use the system tray and wastes even more real-estate). Hplip, HP's tray-icon applet, does not quite work. The stock KDE device handler aplet does it right, stays out of the way until relevant. Kdroid, I believe, should stay visible but this could certainly be a user option. As a plasmoid, it could be placed anywhere and toggled. 2. Strange bugs and variations: The main problem with android is every device becomes it own show. Worse than testing web-pages on everyone's browser! 3. Unless one buys an atrix and the laptop dock, there are a few ways of using the phone from a computer. Kdroid can view (at least some) contacts, choose numbers and send sms. There is android-screencast (java code is on google) which shows the phone's screen in all its glory, can explore the file system and open a URL on the phone. For a rooted phone, it offers full mouse and keyboard control! There are two wifi-keyboard apps on the market: one uses port 8080 rendering it useless on most systems. The other uses a browser on 7777 and offers line or live text entry to running apps and incidentally, keyboard control of non-rooted!! phones using arrow keys for navigating the desktops and function keys for the four buttons. With this and screencast (not so nice split in two apps and the keyboard visual cues are there but weak), I can almost use the non-rooted phone from the computer. The wifi keyboard is on sourceforge on another of these (most market apps are not opensource). Now, the plasmoid: The screen, the sync, the keyboard control, and on a rooted phone, full mouse control. Click the icon, show he screen. Some UI to show, use contacts but this can actually be done on the screen as well. Contact usefulness comes with akinadi. Sms could also revert to the screen, the keyboard feeding the text. Game? (If I succeed in retiring now, I would be interested in participating.)

dovidhalevi

Here's the rub: (Note: I had long since stopped using the email program that comes with android. K9 is much better, almost like the desktop apps. So the contact program is next. Trying something called "go." This let kdroid get all the contacts.) Contacts are in three, count 'em, places: The "phone," the SIM and with gmail/google. Kdroid found the four contacts I had added which were on the "phone." Import/export options only worked one at a time so consolidating them (to where?) was impractical (I copied the four to the SIM, no help for kroid). "Go" let me copy everything onto the "phone." It does backups to the SDcard so that was not the "phone." The original contacts app imported/exported selected contacts to and from SIM or SDcard and created empty groups on the "phone." Whatever... Can kdroid pull off the SIM as well? As for stuff in google's cloud, no point in going through the phone--akonadi support for google has been requested many times already.

Kn3cHt

KDroid sends the entire contact database which includes contacts stored in the cloud, but not the ones on the sim i think.

zubi

I do not understand the directions for How To Build KDroid-perhaps because I am not a binary C + +. Please add an explanation of where you put the dots or just add a bash script!

Kn3cHt

If your KDE is in /usr , which it probably is, just enter these commands: Quote:

git clone git://github.com/Kn3cht/kdroid-desktop.git kdroid-desktop cd kdroid-desktop mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Debug .. make make install

zubi

niki@box:~/kdroid-desktop/build> cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Debug .. CMake Error at /usr/share/cmake/Modules/FindKDE4.cmake:98 (MESSAGE): ERROR: cmake/modules/FindKDE4Internal.cmake not found in /home/niki/.kde4/share/apps;/usr/share/kde4/apps;/etc/kde4/share/apps Call Stack (most recent call first): CMakeLists.txt:3 (find_package) CMake Warning (dev) in CMakeLists.txt: No cmake_minimum_required command is present. A line of code such as cmake_minimum_required(VERSION 2.8) should be added at the top of the file. The version specified may be lower if you wish to support older CMake versions for this project. For more information run "cmake --help-policy CMP0000". This warning is for project developers. Use -Wno-dev to suppress it. -- Configuring incomplete, errors occurred!

Kn3cHt

cmake can't finde some kde4-cmake modules. Maybe you need to install a kde4-dev package. What distro are you on?

dovidhalevi

Service now runs fine, restarts when turning on the phone without intervention. However, I still have no communication. If the phone "responds" to packets sent by the kde kdroid, it returns "unknown packet." GUI suggestion: 1. Have a start and stop service button (and possibly auto-restart on phone boot) button on the apk app so users know what they are doing. 2. More informative icon on KDE service bar, i.e. picture of cell-phone (three such icons on "devices"--actually on black background, these would only show the blue rectangle seen now) or an android symbol .

Kn3cHt

Strange the "unknown packet" error only happens, if the network connection isn't reliable. I'm using udp packets so there is no 100% guarantee that the packets arrive (intact). Maybe I should be looking into a tcp connection. You can test the git develop branch, i've changed a few things concerning the data transfer. I think your idea to allow the user to start/stop the service is good, maybe I'll implement it later today. As for the icon, i'm using the oxygen pda icon, because it's the most suitable out of the oxygen icons

dovidhalevi

You are the first I encountered using UDP. So I switched the firewall and the router to UDP. Still get unknown packet. As I said, not every NAT router will work which is why I usually need USB for such things. Adb forwards TCP. Yes, I noticed the icon. There are many KDE icons which do not show up nicely on the most common "oxygen" style black backgrounds. I will try the git and see if it works.

Kn3cHt

UDP is the easier protokol to use, I don't have to deal with connections and streams. I can just send a packet with the data as payload. And as UDP doesn't give me any problemes, i saw no reason to change it. But I think i will try to implement tcp sometime this week.

dovidhalevi

If the problem be the router, makes no difference whether UDP or TCP, unless TCP gives better debugging opportunity. However, since using Adb caters to TCP, using USB port forwarding instead of WIFI would seem to need TCP. I am probably not the only one with a router giving problems for this and similar applications.

Kn3cHt

Switched everything to TCP, try the dev branch and let me know if it works. USB is also working now, set the IP to localhost and start "adb forward tcp:48564 tcp:48564"

bigbrovar

Better integration with kaddressbook would be really awesome having to type each number offhand is really hard.. Also the ability to click a number on kaddressbook under sms and have it launch kdroid would be just super. Keep up the great work :)

Pling
0 Affiliates
Details
license
version 0.7
updated
added
downloads 24h 0
mediaviews 24h 0
pageviews 24h 4

Other Telephony:

KCall
evabrucherseifer
last update date: 18 years ago

Score 5.0

Ubuntu Metal Theme for Sony Ericsson
marco94
last update date: 16 years ago

Score 5.0

Sendsms
Ruggero
last update date: 15 years ago

Score 5.0

Monosim
hman
last update date: 13 years ago

Score 5.0

Phone for voice modem (Qt)
AlexeyK
last update date: 18 years ago

Score 5.7

Qubladi
mmarco
last update date: 16 years ago

Score 5.0



System Tags