I have been doing some heavy research into the field of Visual Search, and I tried the technologies from Google (Goggles), Amazon (Firefly), and other vendors.
I can say that FireFly is actually the best, because its instant identification (no need to snap a photo and send it to some server for processing), plus its able to identify products accurately without having to scan their barcode, which is fascinating.
The thing is, Amazon exposed the Firefly SDK but only for their phone's Fire OS. And you can't use it for other Android development.
However, I am pretty sure this is not a hardware limitation, because Amazon has an app called Flow which runs on Android and iOS which uses the same identification technology, so I am sure any camera can be used and not just the one on the Fire phone.
Does anyone know if it's possible to use the Firefly SDK somehow on Android? I know this might be impossible without some sort of reverse engineering for FireOS, but even so at least it would be technically possible!
Thanks for your response in advance.
Related
The covid-19 app is capable of detecting who came into contact with who, how do they do it? I am trying to make something similar but I am unsure how they managed to get that information from the phones. I don't need the information to be private (like phone number), it could be something that only the government can make use of (like sim card number or MAC address. Is that possible?
I looked into Google Nearby and Wifi Direct... But as far as I understand it, it requires a handshake (covid19 app doesn't). I also looked into potentially making your phone into a hotspot and capturing wifi requests but I am not sure which library / API lets me do that.
Does anyone have know how this is done? I can't find a concrete answer anywhere, this seems to be actually impossible until I realized that the covid-19 app is doing it.
As Morrison Chang and ArtHare have commented already, Google and Apple have implemented this on an OS level:
In the coming months, Apple and Google will work to enable a broader Bluetooth-based contact tracing platform by building this functionality into the underlying platforms. (source)
If you want the specs they're using, Apple and Google have pages on how contact tracing is implemented, but it would be hard (if not impossible) for an app to implement this.
I like to have single android app in our managed devices, we want only that app to be used on the device with necessary restriction, such that,
Single use - Device will have only one app, user can't use other apps, like browsing, youtube or anything,
the initial setting like notification sound, GPS always on, notification and ring sound maximum level can't be modified.
user can not power off the device.
this setting can only be changed by our servers.
i think i have 2 option,
1) Using samsung knox sdk on samsung devices,
Here's MDM proving feature of Samsung Knox Standard!
2) General Android way, Set up Single-Purpose Devices, COSU solution
Android Developer's site.
Wanted to know your's view on this, may be if you guys have done any of the two or any other ways, i could use some of the guidelines or a path.
Thanks for reading, and please comment if i was unable to articulate the subject or it needs editing.
You can use Google's new Android Management API, it seems to suit your needs.
It is a new cloud API that allows to manage Android devices from a server, without having to build an on-device agent (a device policy controller).
I have broad experience of using Samsung Kiosk Mode from Knox Standard SDK which is free and Pro-Kiosk mode from Knox Customization SDK (which has more functions but is not free).
So I can tell you for sure that all 4 points that you have mentioned can be achieved by using Knox Standard SDK.
Singe Purpose: https://seap.samsung.com/api-references/android-standard/reference/android/app/enterprise/kioskmode/KioskMode.html
LocationPolicy (you can turn on GPS and restrict changing): https://seap.samsung.com/api-references/android-standard/reference/android/app/enterprise/LocationPolicy.html
Yes. It is possible but I forgot the exact implementation.
Yes, as well.
Only downside of using this SDK is:
You are tied to Samsung (which I personally okay with, since Samsung has such market penetration and you could get service almost anywhere in the world and in enterprise world it is critical)
About Android native functionality: never tried it
Update March 7, 2019: Now I am playing around Device Owner, we use it for Kiosk mode, works well and works on android Device with Nougat and earlier.
I am developing hybrid app using Ionic and I do performance testing with one low end budget android device. That phone is my performance quality assurance. Once I upload to the app store, I can see hundreds type of model of smartphone is using my app.
So, I am curious and really want to know how many phone up there that are using my app has a device that is stronger performance than my low end budget device and how many of them were slower. This is something really important for me to further develop and enhance the app. If majority, let say more than 90% of it were faster than my testing device, that mean I am safe to put in more feature into the app. If many devices where below my testing device, that's mean maybe I need to put more concern on performance on future release.
Therefore, is there anywhere I can have those data? Having my own performance test inside my app to do collection? Any API to connect to existing database to have the info of phone performance based on model?
To be honest: I don't know if there's any existing work you could reuse for that purpose.
But as measuring performance highly depends on your app and the expected bottle necks, I guess that you need to have your own testing methods and that you need to collect your own data.
One more hint: you could use the cordova-plugin-device to get information from the phone and OS your app is installed on.
#user1995781,
I understand your reasoning, however, you are making a fundamental mistake. You assume your Interface is good, when in fact users might reject is. As Jef Raskin used to say, 'Test and test again'. Jef was the original designer of the Apple MacIntosh.
The point being, you need to test the user experience too.
For your request, you want to Google: mobile analytics
Flurry, now owned by Google
Localytics
Amplitude
to name a few
Adobe, IBM and MS all own or have one product in this category. - Best of Luck
I’m completely new to Qt mobile, I even don’t have a solid mobile dev experience, so sorry if I’m asking something obvious.
I need to develop a mobile app that should have the ability to receive a call like functionality (over internet, not GSM call). When answered, it should start streaming audio and video from our server. The call should be one way only, meaning, that stream goes from server to device, but never from device to server.
So my questions is:
Is this possible in Qt? I chose Qt because I’ familiar with it and I want to support desktop, android and ios. maybe windows phone later.
Is it possible to receive a call when the screen is shut off and my app is not running? I mean, this is a mobile device, the app won't be running all the time, it should be started only when a call is made from server to device. How can I achieve that? I think Viber, Skype and other messaging apps do that.
Many thanks in advance :)
1 - Well, sure it can, although it might not be as easy and straightforward as you'd want. Qt Multimedia does provide the necessary classes, but you do have to check how supported they are on the platforms you need to target.
However, the classes Qt provides are either too high level to serve any purpose but their intended purpose, or too low level, so you must implement pretty much everything by hand. In this aspect, the benefit of Qt being capable of producing portable apps may not outweigh the ease of using certain platform specific libraries that offer video streaming out of the box. In other words, it might be easier to write separate Android and iOS apps using Android and iOS libraries than a single Qt app that will work on both.
But just in case you decide to go with Qt, as I mentioned for the time being you are left with one option - do most of the work yourself. This means you should record audio using QAudioRecorder and capture frames periodically from a QCamera in a buffer of given length, compress that data (and preferably encrypt it if security is a concern), send it to the client over a QTcpSocket connection, decompress (and decrypt) the data and play it back in sync. It is certainly doable, but as already mentioned, it will be much harder since Android and iOS libraries offer pretty much "out of the box" solutions. Alternatively, you might decide to use a third party solution that offers support for all the platforms you target.
2 - whether your screen is on or off - that will be a call to a platform specific API, so are requests to turn it on or to keep in on for a given duration. Whether your app is running on the device or not, that is easy - just try a TCP connection with the client on the device, if it succeeds then the client is running. If you want to receive calls while your app is not running, you will have to implement a platform specific service that runs all the time instead and starts your application when a call is received.
QT Mobility does not have a a framework for supporting VoIP as you can see from the reference :
http://doc-snapshot.qt-project.org/qt-mobility/
You could create the VoIP framework of your app natively (which is going to require a good understanding of the various audio and video frameworks available) but another way to go
would be to use a VoIP SDK that supports both iOS and Android such as the Twilio mobile client
https://www.twilio.com/client/mobile
Qt mobile will help you in your application's UI, however you will have to write some native code for each platform you are going to use. Note that Qt is extending fast, you might need not to get your hands dirty with platform specific native code in upcoming versions of Qt.
Yes, you can receive a VoIP call when your application is closed by creating a background service (but as I know so far Qt doesn't do the job for you, you'll need to do it natively), it is the way Skype and Viber work.
As per I know new Blackberry10 OS using qt for developing. There is one source code available about VoiP Calling in qt. I am still searching about video call.
Check below link, May be helpful
1) Blackberry Developer Blog
(2) PjSip Blog
(3)Download Source Code
I don't know how to develop app in Android, ios, desktop using qt language.
But I am suggesting develop app in all native language instead qt.
I want to start develop mobile applications and sell it. There are many mobile platforms for which I can begin develop: Windows Mobile , Android, Iphone, Linux based Devices.
I want to find out from people who has such experience which platform more comfortable and more profitable for me to use.
There is no general advice on this.
The recommendation clearly depends on your experience and several other factors. What programming languages do you know? What kind of applications do you want to develop? Do you want to take the risk that your software isn't even put in the corresponding app-store (see apple)?
You have to take several things into consideration. I'll try to make a short overview:
Android:
needs Android SDK
Java as programming language
free marketplace (i.e. no prior control whether your app comes in)
develop on any system you want to
open plattform
furhter information
iPhone
needs iPhone SDK
Objective-C as programming language
prior evalutation of your app before storing it in the app-store
you need to have a mac in order to develop for iPhone
closed plattform
further information
Windows Mobile
developing with .Net-Framework
don't know a lot more about it, but further information can be found here
Other Linux-based devices
take a look at their specifications, they often have an own SDK
Also don't forget about Symbian for Nokia. They recently launched their OVI-Store. And oh, also Palm could become very interesting just after yesterday's news that HP bought it. It's also a nice plattform.
Which one of these is more profitable for you also depends on your skills. Good software will sell good, no matter which plattform you decide for. My recommendation clearly is: Take a look at the SDKs and the needed environments and then compare it with your skills. If you say, you have a good experience in Java development go ahead with android. If you want to do some mac-stuff choose the iPhone.
I'd say the markets with the highes potential clearly are the iPhone and Android markets. I don't know, how Palm will develop now but there could be a big potential in it in half a year or a year.
Currently, the most lucrative platform is the iPhone. The Android is not even close yet. The number #1 selling game on Android is Robo Defense, its entry in the Market says 50,000 to 250,000 downloads, and its price is $2.99. Assuming the price has been constant, that means the developer has roughly made between $100,000 and $500,000 (after the 30% commission has been taken out). And yet, I have developer friends on the iPhone that have made way more money than that, and those friends are not even close to have the best selling apps on the iPhone in their own category.
Part of the problem is the number of handsets out there: according to Gartner, the number of Android handsets won't overtake iPhone handsets till 2012. The second problem is conversion rates: according to Admob, Android users are only worth 60% of the iPhone users in terms of converting from free lite version applications to paid applications (supposedly, Admob has compared identical apps on both Marketplaces).
That conversion rate is believed to be attributed to two factors: the type of users Android has, and the fact that Android currently only uses Google Checkout for its Market transactions (when in fact, it probably should use Pay Pal, not Google Checkout). But that too, should change soon. With the Evvo (from Sprint) coming out, Android will be a great phone, and with it, it will start attracting some of the very top high end users. Also, the Android Market is starting to accept transactions using carriers as go-betweens, so that should help remove some of the steps that it takes an Android user from buying an app (at least, I hope that it will).
And do notice that I didn't even mention the Ovi store from Nokia. The Nokia sdks are still as fragmented as ever. The Ovi store is currently a mess. Its three-star rating system is useless. All apps average to two stars. They don't allow you to upload screenshots. And the Ovi store is so expensive to upload an app to, $50 for Ovi + $150 in certificate signing fees, so it doesn't encourage new developers to even try it out.
Also, I didn't mention Microsoft. Microsoft is a bit of wild card right now. I can't say much about it, except that LG who was supposed to have more Windows Mobile phones than anything else now has more Android Mobile phones than anything else. So Microsoft better get their ass into gear if they'd like to stay competitive in the Mobile arena.
I would recommend Android as it's a growing market. Android development is well documented and newbie-friendly.
You may find these threads useful too:
What mobile platform should I start learning?
https://stackoverflow.com/questions/598252/most-promising-mobile-platforms
Getting Started With Mobile Development
You didn't mention webOS in your original question, but it's worth a look. Has an open development model, like Android, but is based on HTML and JavaScript, so might be easier to get started with if you have experience in Web development.
Here's the Palm developer website