Is there an Android Bitcoin app that can interact with other Android Apps on the same device? Suppose I'm developing a Bitcoin-based Android app.  It could do anything: user pays Bitcoins to play a game, order a pizza, accept charitable donations.  Whatever it does, it does it in Bitcoins, and it's targeted to people who are Bitcoin savvy and probably already have the ability to access Bitcoins on their Android device.  I don't want to deal with the user's wallet, nor do I want the user to have to trust their wallet to my app.

I can think of two ways to do this:


1) there already is a Bitcoin wallet app that runs an  Android Provider that my app can access.  When I need to send Bitcoins from the wallet, my app communicates with the Provider, and the other app gets the user's approval and protects their wallet from my app stealing their Bitcoins.
2) There is a Bitcoin wallet app that I can send an Android Intent to, and as in #1 that other app confirms the user's approval before any Bitcoins leave the wallet.


So I have two questions:


Am I missing another way to do this?  To make an app that can send the user's Bitcoins without me touching the wallet directly but using some other app they already trust?  (And without cutting and pasting a Bitcoin address.)
Assuming this is the way to do it, are there any such Android apps?


A search of Google Play for "Bitcoin" turns up many results, but from a small sample the only ones I've seen that actually transfer Bitcoins seem to work off QR codes or NFC.  They will interact with other Android devices, but I don't see one that interacts with other Android apps on the same device.  But then again, I doubt the description for end users would have information like that.
The answer is the integration-android subproject of bitcoin-wallet.

Start with the source repository for
the Bitcoin Wallet.

The source code for in-app payments is in the BitcoinIntegration.java file, which is under the integration-android directory.

Instructions for compiling this subproject and example source code for using it are given in this slide presentation by Mr. Schildbach

There is also a sample android app that demonstrates this feature.

My thanks to Andreas Schildbach for personally sending me the answer to this question!