I'm looking for a Jingle library (or app code) that exists on android and supports Voice for Gtalk or any xmpp in general.
I don't really want to write JNI for libjingle. I would prefer something in java /android.
Check this repo it should help.
webrtc-jingle-client
There is no java port for it. Its better to use the libjingle c .so and use JNI on android.
Related
I was looking into Android SIP stack, but I don't see funcionabilities that I need such as mute, hold and transfer a call.
Which library do you recommend to implement these funcionabilities?
Thanks in advance.
I can recommend
Linphone (sample app)
Csipsimple (sample app)
Both of them is easy to implement (Linphone is easier in my opinion) and if you need more feature you can add it by yourself in Csipsimple because it's an open source project.
I want to communicate with Apache Tomcat server using android ndk(native code).
Is it possible to communiate , Is there any other alternative to do so ?
Thanks.
Standard POSIX socket code can be used for networking in Android. The socket system call api for android can be found at https://github.com/android/platform_bionic/blob/master/libc/SYSCALLS.TXT (this is a clone of the official android C library repo). This should take care of your network layer requirements. As for the code, the code for a simple network client can be found at http://en.wikipedia.org/wiki/Berkeley_sockets#Client. However, this is only in the case you want to write up your own application layer protocol( I assume HTTP) code. It is better to use an HTTP client library instead,.
As for an HTTP client library, you could use libcurl or any similar library for communication. A good list of available libraries on the libcurl site at http://curl.haxx.se/libcurl/competitors.html.
Note: You will most probably not get any compiled library. You'll need to compile and add the library into your application before you compile your code, and the library will need to be a part of the install package as well.
I have my own C++ library with source code. It contains functions like this: CreateDvice, FillDevice, CloseDevice and etc. There is no dependency to any third-party libraries.
There is requirement to create application for mobile platform:
Blackberry
iPhone
Android
The application has to use logic provided by this library.
Is there chance to use existing library in mobile application or at least some of them?
Or does it require to re-implement library code for each platform?
For iOS (iPhone/iPad) you can directly compile your library and use it from a regular iOS app written in Objective-C++ and/or C++.
For Android you can directly compile your library using the NDK, then either write your app in Java and call your library via JNI, or write the whole app in C++ using the NDK.
I believe you are out of luck on Blackberry, for this platform you'll need to rewrite your library in Java, as neither apps or libs can be written in C++.
Edit: See my other answer for a completely different approach that may work for you.
Blackberry:
It's technically possible to have ASM on BlackBerry (or Android, iPhone, etc.) but 3rd-party developers are often not allowed (or not able in the case of BlackBerry) to do so.
iPhone:
Absolutely. You can statically link a C++ library. Of course it will have to be compiled with the right instruction set. There are a host of examples out there on how to do this. Translate - you will need the code.
Android:
Absolutely. There is a good book on this by Mark Murphy. Introductory material here:
http://www.androidguys.com/2009/10/14/android-beyond-java-part-one/
Your question is unclear. Do you need a cross-platform library/engine to create a mobile application?
If it is so, Cocos2D would be the best choice. Originally it's a game engine, but it is suitable for applications too. And it supports all the platforms written above.
Instead of compiling your C++ library on each target device that you intend to support, you could opt for creating a service that packs your library. You can install this library on a host you have control, then from each platform the only thing you need to do is invoke this service.
I'm not sure if this thing makes sense for the kind of library that you have, but this would be a way to maintain a single version of your library, and you'll have a guaranteed same behavior on all devices.
Good luck.
Android is not natively Java, it's natively C++. And iOS is also natively C++. So why not just leave the C++ code untouched and drop RIM's current platform (since they are switching to BBX which does support C++ as well).
For Blackberry you can use the C++/Qt Cascades; for iOS you can use C/C++ & Objective-C (a superset of C) and Android can use the C++ NDK. You can use Java on all platforms as long as the Java apps are standalone and the JRE is pre-packaged with the app (iOS). You can interface with C/C++ libs using JNI
If you want to use a Java library on all platforms, that would work.
Android and Blackberry are natively Java.
You can use a tool called XMLVM to cross-compile your Java library to Objective C for use on iOS.
http://xmlvm.org/overview/
It is not 100% perfect, but pretty darn close. We use it extensively to port common Java library code to iOS. Port the C++ library to Java and you are good to go.
I was looking into writing an app for Android platform that would (hopefully) use a DLL with a C interface. The only way to grab information from the server is through this API. Is this even possible? If so, could anyone give me a point in the right direction?
Thanks
I was looking into writing an app for Android platform that would (hopefully) use a DLL with a C interface.
"DLL" is a Windows term. You cannot use a Windows DLL on Android. You will need C code that can work on Linux, as Android is a Linux-based operating system.
The only way to grab information from the server is through this API. Is this even possible?
Is it possible to create a C library for use on Android? Yes. See the Native Development Kit (NDK).
Is it possible to create a server that can only be accessed by some C library? Probably not without a lot of work, if that server is accessible from the Internet. Anybody can try hitting that server, or can reverse-engineer your library, or can perform packet inspection on your library-to-server communications.
Did you try Mono?
Disclaimer: I have used in on Linux and (it works) but not on android.
I am a beginner on android platform, and I want to build a tracerouting app. So these are my queries:
Is it possible to make such an application in Android? if possible then guide me the way that I follow.
Does Android support low-level programming to capture ICMP packets? or do I need to add some kind of JAR (in java) or some other libraries to support this application?
In Java, there are JPCAP and docjar etc kind of libraries that we can import in our IDE or Eclipse so that Java support for making such kind of API's?
I need valuable suggestions.
It's quite late - but someone might see it.
i found this one and it worked for me:
https://github.com/olivierg13/TraceroutePing
The simplest way I can think of is to just check for the traceroute Linux application, execute it, and parse its output.
Android has full networking support, however, Java doesn't expose an interface to alter the IP header. Hence, manually crafting ICMP packages is out of the question (JPCAP is no help here, since it relies on libpcap, which I suppose you won't find on any vanilla installation).
Another possible solution is to use the NDK and create a small library that handles the low-level number crunching. However, I'm not sure if the NDK would allow you to use setsockopt.
This is working pretty well for me, you may have to filter out the string results.
To add this library, you have to download or clone the git repository and implement the folder "library" just as he does in the other module "app" for it to work properly.