Great discussion you have going on here. I've been following it from
the sidelines, but I do have a few things to add.

First, I had confirmation from a Google employee - informally, over
lunch at one of the Developer Lab events, but from a Googler
nonetheless - that it's absolutely OK to link your app to a website
(which you also run) and sell digital goods that way. IOW, if you have
a site where the user can create an account, and which handles
payments, you can hook your Android app to that site and make your app
adapt to what's been paid for. This would include downloading
additional digital goods. My belief is that this is how the Amazon MP3
app functions - it works with your existing Amazon account.

Of course, Amazon is a big name which users know and trust, not an
indie game dev. However, I'd think you could set something up using
the Google user creds SDK on the handset, and Google's authorization
API on your site, to minimize the extra account creation/login stuff
within your app. I haven't pursued this myself, but what I know about
these APIs leads me to believe it's possible. However, it's still
probably more dubious than listing your add-ons as separate Market
apps.

So second, I think Bob is right that you can take a lead from the free/
paid app pairs which are out there and working. It's a different use
case, but the same basic problem: the user already has one app, and we
want to sell some additional digital goods to them as painlessly as
possible. There's some good discussion of the various approaches in
this recent thread:
http://groups.google.com/group/android-developers/browse_thread/thread/4ad3d67f735f16d7

My own free/paid approach is discussed in that thread, but I'll
summarize it here: I have a time-limited "trial" version of my app,
and separately on the Market, I have a "license" app. The trial
version simply checks for the existence of the license using code like
this:

final PackageManager pkgMgr = context.getPackageManager();
final int sigMatch = pkgMgr.checkSignatures(context.getPackageName(),
LICENSE_APP_PACKAGE_NAME);
if (sigMatch == PackageManager.SIGNATURE_MATCH) {
        // License found - disable time limit
}

In my case, I only want to check for the existence of the license.
There's no new functionality added, just the removal of the time
limit. But you could definitely add functionality by any of several
means - a shared database, or an Intent which implements new stuff,
for example.

The add-on app (like my "license"), will only appear in the Launcher
drawer if it has an Activity with the following in its manifest:

      <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>

So just avoid that, and it won't clutter up the user's app tray.

Regarding the whole refund/uninstall issue... My feeling is that the
most foolproof way to handle it is to disable the added functionality
if the add-on app is uninstalled. This handles the refund case
implicitly, and as long as it's not in their app drawer (see above),
the user shouldn't need or want to get rid of it. You can discourage
accidental uninstalls if it's labeled something like "SuperGame Add-
On: Character Joe Blough". Seems to me that if they uninstall
something named that, they shouldn't be surprised when that
character's gone from the game. Even if they do, they can always re-
download from the Market.

I also wouldn't worry too much about "flooding the Market" unless
you're literally releasing hundreds of these things. With 30k+ apps in
the Market, you're always going to be a drop in the bucket. It may
slightly annoying tho folks who monitor the "Just in" list, but
there's a lot of dross in there already.

String

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

To unsubscribe from this group, send email to 
android-developers+unsubscribegooglegroups.com or reply to this email with the 
words "REMOVE ME" as the subject.

Reply via email to