Licensing an Android application programatically.

by aayush » Wed, 03 Jun 2009 17:25:32 GMT


Sponsored Links
 Hello list..

I had a query:

If i wish to attach an evaluation license to my android application,
how can that be achieved ? As for example, i may want to provide an
evaluation license based application that expires in one of the
following ways:

1. Time based (30 days etc)

2. Usage based ( 100 invocations of the application).

Once the application's license expires, i need to restrict access to
it from the user.

Thanks in advance..

Best Regards

aayush
--~--~---------~--~----~------------~-------~--~----~



Licensing an Android application programatically.

by aayush » Wed, 03 Jun 2009 17:50:24 GMT


 okay..thanks for the answer Marc.

For #1 i believe i need to create my own certificate by using the
keytool utility and sign it as you suggest.

Time based is my only requirement..as of now. Usage based is not a
priority for me.

aayush




--~--~---------~--~----~------------~-------~--~----~


Sponsored Links


Licensing an Android application programatically.

by mobilekid » Wed, 03 Jun 2009 18:09:35 GMT


 I would do the same.

Get the android ID like this:

String android_id = android.provider.Settings.System.getString
(this.getContentResolver(),
android.provider.Settings.System.ANDROID_ID);

Then send it to your back-end and query the number of times you've
made the same call or the date you firstly made a call against the
unique ID.

Hope it helps!


On Jun 3, 11:02am, Sujay Krishna Suresh <sujay.coold...@gmail.com>





--~--~---------~--~----~------------~-------~--~----~



Licensing an Android application programatically.

by aayush » Wed, 03 Jun 2009 19:44:09 GMT


 hanks so much for the detailed suggestions. I really appreciate it.

Basically, the web based alternative will require the users of the
application to run it with an internet connection. My app is a telco
application, usually tested in an isolated lab environment on a
private LAN.

Performance may be an issue, as you guys correctly pointed out..but
for an evaluation copy..it may be acceptable. For the real production
ready (paid app), i wont use such a license.

But still, i want to understand the performance penalty on using a
client side licence solution. Is it that heavy that it will impair the
performance of my app?

if i remember correctly, i think the android app certificate needs to
be assigned a validity date..and it can be password protected. Maybe
it can be utilized for my needs?

aayush

On Jun 3, 10:09am, mobilekid <mobilek...@googlemail.com> wrote:
--~--~---------~--~----~------------~-------~--~----~



Licensing an Android application programatically.

by Neil » Wed, 03 Jun 2009 19:45:40 GMT


 or one thing, it's Secure.ANDROID_ID not System.ANDROID_ID.

But the documentation on that is a bit vague. It seems to be related
to your Google login information, so that brings up two questions:
1. is it sensitive information?
2. does it change if you log in to another Google account?



On Jun 3, 12:09pm, mobilekid <mobilek...@googlemail.com> wrote:
--~--~---------~--~----~------------~-------~--~----~



Licensing an Android application programatically.

by aayush » Wed, 03 Jun 2009 20:34:38 GMT


 es...sounds neat indeed..

--~--~---------~--~----~------------~-------~--~----~



Licensing an Android application programatically.

by aayush » Wed, 03 Jun 2009 21:05:13 GMT


  am still in the requirements gathering stage, trying to make some
use cases for the licensing requirements. Starting this thread really
helped.

For understanding and reference..i am using this resource:

http://java.sun.com/javase/6/docs/technotes/guides/security/crypto/CryptoSpec.html

On Jun 3, 12:41pm, Sujay Krishna Suresh <sujay.coold...@gmail.com>
wrote:
--~--~---------~--~----~------------~-------~--~----~



Licensing an Android application programatically.

by Al Sutton » Wed, 03 Jun 2009 21:24:05 GMT


 ou guys might want to take a look at 
http://andappstore.com/AndroidPhoneApplications/licensing.jsp

Al.

--

* Written an Android App? - List it at http://andappstore.com/ *

======
Funky Android Limited is registered in England & Wales with the
company number 6741909. The registered head office is Kemp House,
152-160 City Road, London, EC1V 2NX, UK.

The views expressed in this email are those of the author and not
necessarily those of Funky Android Limited, it's associates, or it's
subsidiaries.

-----Original Message-----
From: android-developers@googlegroups.com
[mailto:android-develop...@googlegroups.com] On Behalf Of aayush
Sent: 03 June 2009 14:05
To: Android Developers
Subject: [android-developers] Re: Licensing an Android application
programatically.


I am still in the requirements gathering stage, trying to make some
use cases for the licensing requirements. Starting this thread really
helped.

For understanding and reference..i am using this resource:

http://java.sun.com/javase/6/docs/technotes/guides/security/crypto/CryptoSpec.html

On Jun 3, 12:41pm, Sujay Krishna Suresh <sujay.coold...@gmail.com>
wrote:


--~--~---------~--~----~------------~-------~--~----~



Licensing an Android application programatically.

by strazzere » Thu, 04 Jun 2009 00:31:38 GMT


 he serial key doesn't really make sense unless you want to make your
users jump through hoops to get it working.

A good serial key should be using an unique indentifier on the device
such as android_id or a phone number to prevent spread of one key.

There would be practically no performance hit for a quick query to a
sqlite3 database to see if it is register or a date has expired. This
is what I would recommend. Store something in a database, and crypt it
using some simple way. This would allow you to keep track of the data
of installation and it could not be nerfed by a user unless they have
root. It *could* be worked around if they uninstall and reinstall -- a
few programs has used a work around by placing this install date on
the sdcard -- also with little performance hits.

Pinging a website to see the date isn't a bad idea, but only if the
program already requires internet connection.

Essentially your solution boils down to, what is easy enough that any
user can use it - but hard enough that an average job won't just try
to steal it.... Or a better way of looking at it - if it's good enough
to buy, people will buy it regardless.

On Jun 3, 9:31am, aayush <abhatnagar192...@gmail.com> wrote:
--~--~---------~--~----~------------~-------~--~----~



Other Threads

1. Struggling with google maps (SOLVED)

Well, it might have been something wrong with the maps.jar.
I created a new project from scratch and discovered that maps.jar in
the sdk version i'm using is very buggy and a lot smaller than in the
previous version.

For instance, i was unable to compile my maps class when i created an
instance of the GeoPoint class.

Anyway, the buggy version of the maps.jar is in the sdk 1.5_r2. I'm
now using the maps.jar found in the sdk 1.5_r1 and everything works
smoothly :)







--~--~---------~--~----~------------~-------~--~----~

2. Connection status

Hi, My Java knowledge is very limited so it's quite an easy question
(probably) but how can I get the code below to work? I'm basically
trying to check that the device is connected to the internet to that I
can access and parse an RSS feed. This is also the 1st android app I
have written so I'm still finding my way around so any help/advice
would be appreciated.

I'm sure the variables should be assigned to something but I don't
know what. The classes don't appear to have public constructors so I
can't do "WifiInfo info = new WifiInfo()"

package com.Weather;
import android.net.wifi.WifiInfo;
import android.widget.Toast;
import android.telephony.TelephonyManager;



public class AirportWeather {

        public AirportWeather() {

        }


        /**
         * Check the device is connected to the internet
         * @return int 1 = connected, 0 = not connected
         */
        private static int checkInternetStatus()
        {
                WifiInfo info;
                TelephonyManager data;
                Toast.makeText(null, info.getNetworkId(), 200);
                if(data.getDataState() == 2)
                        //mobile network is connected then return 1)
                {
                        return 1;
                }else if(info.getNetworkId() != 0)
                {
                        return 1;
                }
                return 0;
        }
}


Thanks
Steve

--~--~---------~--~----~------------~-------~--~----~

3. scale animaions goes behinde the screen.

4. Query GroupMembership cannot find contacts in a specific group

5. How to DROP a Database in Android ?

6. Android build fail issue after reverting back to JDK 5.0

7. ambiguous column name: _id when querying the contacts list