I'm having to create a new app for our installers and they currently have an app that they use on Android 5.1. It doesn't use either features mentioned in the title but I'm looking to implement that in the new app. I'm just curious what version do the new phones need at minimum to support an app that allows for both of those to be supported.
SNMP is going to be used to make calls to subscriber modules. Itll have to be able to use both Version 1 and Version 2. It'll be completely equipment based.
The PPTP connection will be only for the app itself. I don't want it to default all traffic the phone is using to that connection. Merely only what calls the app makes to the network. Is this even possible?
PPTP
I'd have to assume there are libraries out there for version of Android that didn't include it natively, it looks like v4.0 is the earliest Android version to include PPTP.
"Android includes a built-in (PPTP and L2TP/IPSec) VPN client, which is sometimes called legacy VPN. Android 4.0 (API Level 14)"
https://developer.android.com/guide/topics/connectivity/vpn
SNMP
The best thing I can find for SNMP is an app that uses SNMP on Android 2.3.3. Who knows what library or home-rolled code they used to do it, but it looks like you have some "wiggle room" if you're just needing it for Android v5.x.
https://snmp-agent-4a.en.aptoide.com/
Another link that shows the age of SNMP on Android doesn't say what OS version it's talking about, but we can see the images are of fairly ancient phones. It's circumstantial at best, but it looks promising for your project.
https://www.dpstele.com/snmp/monitoring-smartphone-best-practices.php
Related
It seems like a relatively mundane task to make an app that can send data via bluetooth but I've been banging my head on this for the past few days so I'm looking for any ideas. I'm running OS X 10.10 and using a Nexus 5 Android device. Here's what I've tried so far:
I need a server program running on my laptop and I need a client-side android app running on my phone. However, (correct me if I'm wrong) the server program running on my computer needs to be able to access the Android Bluetooth API because I need to use the BluetoothServerSocket (based on the server-side code provided in Google's Android Bluetooth tutorial).
Since it's server-side code, I need to run it on a server so I built a Java Servlet which I ran from inside Eclipse but I didn't know how to access the Android API from inside a dynamic web application.
So I started following this approach where the Bluecove library made that possible: http://luugiathuy.com/2011/02/android-java-bluetooth/
I tried getting Bluecove to work with OS X but there are a whole host of issues involved with that. I found some workarounds and then got an error dealing with the IOBluetoothLocalDeviceReadSupportedFeatures device that Apple removed in its later OS versions (but Bluecove depended on it).
I found a fix here that installed the old IOBluetooth library and changed the DYLD_LIBRARY_PATH to point to it. Unfortunately, this had no effect (I don't know if I changed the library path properly...I followed the instructions from Solution 1 in the answer from this post).
In any event, I feel like I'm overcomplicating this task and am looking for any guidance - in terms of overall approach or a specific thing I missed. The primary issue is accessing the Android Bluetooth API inside the server program intended to run on my laptop.
I eventually ended up using WiFi to send data since there was better software support for that.
But if someone wants to pursue the Bluetooth path, one possibility is to run OS X Lion (which had the IOBluetooth library) as a VM and run the server-side Bluecove code on the VM. This would require a separate Bluetooth USB dongle to be attached because the VM can't access the bluetooth hardware of its host machine - there may be a way but by default it can't access the in-built bluetooth hardware.
Not an ideal solution but I don't know if there is much choice until Bluecove releases a version that is supported on recent OS versions.
Is there any way to update the Android OS through an App(Using Android API or any other API/) after checking if a newer Android version is available in the market/Playstore
The Use Case required to be supported here is as follows:
The App starts and checks the version of the installed Android OS
It then finds the version of available Android OS in the
Playstore/other repository for that device
Then it compares the two version and if the available version is
newer, then it installs the new Android version on the device
How can it be implemented , especially the third point ? I do not want to root the device for that, so if there is any way to achieve this, please help ....
There is no API. If your device has an update feature built in (most do), you can decompile the update service and see how it works. If your device does not have an update feature, then you can look at custom ROMs for your device. Once you get ahold of a ROM or an update.zip you want to use, the process cannot be done automatically. The updating takes place in the system recovery mode where the user will have to select the .zip to update. However, if you can decompile and figure out how your manufacturer's update service works, maybe you can pull off an automated process.
There aren't any tutorials or documentation for this, as it is 100% dependent on phone model/OS. You can probably find a flashable ROM for your device, however, but the process is rarely automated. Actually, take a look at ROM Manager in this case, it is a somewhat automated upgrade app. I tried it before and it bricked my phone. Good luck
You would need to know where to ask if there is a newer version. And then is there an upgrade available for that particular device. At that point you could broadcast a request to update. Does not the device know when an update is available?
For updating your android version you would need
Custom Android on you device.(Some more info)
Rooted device.why need rooting?
Now for installing we would need to flash ROM.You would also need to have check for version of the OS available, which depend upon your logic .Generally Samsung ,Sony they use custom android and the updates are pushed over app center( or something like that,not much knowledge) in your case it may be any cloud service or server to check version for your custom android.
When we have a new version, after user accepts to upgrade, a new img file would be downloaded to your device which would be used to upgrade the OS.Please note you would also need a recovery backup method too.There are some Commands that can be used to extract and download the OS through your code.
I haven't implemented it yet but this is the procedure i could find.
I hope this would help others.
UPDATE
I have got some new information about how can we initiate the update through code. the Link and there's this another link that can be great help.
In both the examples they are using SystemRcovery class with intallerPackage API.
I have written a Java SE desktop application that communicates with a micro-controller. It displays data received from it and send updates to it, communicating constantly. It uses some third party libraries and the javax.comm library to communicate over serial. We are currently investigating our options for developing a cross platform mobile app that has the same functionality. Ultimately, this new application would be able to be compiled and run from the desktop, a mobile phone and a tablet. I have researched a few options (Oracle's new ADF mobile, phoneGap, Java ME, etc.) but am wondering if anyone has any suggestions of what would be best. Feel free to ask any follow up questions. Thanks in advance.
Ray
You are going to run into a couple challenges in doing this. First of all, any cross-platform framework is almost immediately out. Because of the significant differences outlined below, no framework I'm aware of has support for hardware connectivity.
Hardware
Your embedded device is currently communicating with a PC using RS-232 (UART). This is a hardware interface that is not present on any consumer mobile devices (except the iPhone, but we'll get there). The only common interfaces between all the major devices platforms (iOS, Android, Windows Phone) that support a point to point connection from a hardware perspective are USB and Bluetooth.
Of the two, Bluetooth is the simpler one to adapt onto your embedded device because there are numerous Bluetooth modems on the market that simply attach to a UART and relay data over the link as a wire replacement using the RFCOMM protocol.
SDK Support (i.e. how can an APP talk to this hardware?)
The Android SDK supports communication between an application and both interfaces. Bluetooth came about in Android 2.0, and USB in Android 3.1.
The iOS SDK supports communication with both since iOS 3.0. It also supports Bluetooth LE as of iOS 5.
The Windows Phone 8 SDK claims it will support Bluetooth connections, no word that I know of on USB support.
Licensing
This one really only applies to iOS, but it applies to both Bluetooth and USB/Serial. In order to develop the hardware side of the iOS connection, you must be a member of their Made For iPod program. Membership is free, but requires a significant amount of paperwork, and this really only gets you access to the documentation required to implement the protocols required by their proprietary connector. Obtaining the connectors and other components required to make actual connection require further approvals that are not easy to obtain.
Bluetooth LE is the only connectivity standard on iOS that does not require membership in MFi to implement on both the hardware and software sides. However, to date no other major mobile SDK supports this interface directly (Android is getting there).
Overall, my recommendation would be to lean towards adding Bluetooth and keep a close eye on the Bluetooth LE space. If you can find an embedded module that runs dual mode, you can run LE to iOS devices and standard Bluetooth to other platforms. This is the only license-free path I can think of, and as Bluetooth LE SDK support improves, the other devices can take advantage of that as well.
Based on your tags, I presume "cross-platform" really just means android & iOS? That said, the question which cross-platform tool to chose has been answered quite a few times here, and doesn't really bear repeating. My recommendation is to go native, unless you really don't care about performance and optimal solutions.
That said, the interface to the hardware should be interesting. Android has the Open Accessory Protocol which is compatible with more recent versions of Android. This is for connections over USB. Apple is considerably more closed and requires licensing fees for the protocol, the connectors, etc. Your best bet would be to go with bluetooth or even wifi to interface your hardware to the mobile device. This would require only a single hardware design for both devices and would be somewhat future-proof as well.
What alteration should be made in a Java Application to be able to install it on Java Enabled Smartphone?
I tried using a random app of mine to see what happens, when I open it on the cell, it says Install? I say yes, and it says invalid file.
Now I was wondering what alteration should be made?
My smartphone (Samsung S8500) runs on bada which is more or less the same as Android, but alterations in the General.
You need different SDK for smartphones. Like for Android, you need Android SDK 1.5 or any other version. You just cannot install the same application. You need to develop using the resources provided by the SDK.
If your application is Java based mobile application then you can use some tools to convert it for Android. Doesn't work every time but worth a try.
In your case, Bada OS is not like Android what i learn from here. So, you need to develop the application using J2ME .
What are mobile phones supporting Java Android?
Is there any Nokia phone supporting this technology?
What should the mobile contain (a framework, a plugin.. etc) if we want to deploy a Java Android Application?
Android can be deployed to many devices with custom builds of the OS; anyone can build Android . It is not limited to particular handset makers and you might want to consult the makers for official lists of deployed devices.
There is nothing the device needs to contain (other then an appropriate targeted version of Andrdoid) to deploy an application.
One important note is that the application IS NOT run in the JVM, the code is only written in Java and then converted to Dalvik bytecode when compiling (Android runs on the Dalvik Virtual Machine). Since the code is written in Java though you can make extensive use of existing libraries and use them in your applications.
There is a fairly comprehensive list on Wikipedia comparing devices running Android, including forthcoming devices.
Nokia seems to have no interest using Android platform for its devices.
If the device is a certified Android platform, there is nothing one needs to add for deployment.
I think most phones that run Android should support Android applications. However, IMHO one would be hard pressed to compile a list of those phone.But rest assured, it's a lot. Someone DID make a list! And yep, it's a lot.
Some quick Googling reveal that Nokia seems to not like Android so I would assume there is not a Nokia phone with Android.
Framework: Eclipse Galileo with the ADT plugin
My advice:
read this site inside and out! http://developer.android.com/index.html
It answers all your questions.