18

私は実際に、次の要件を満たすアプリケーションを作成する可能性を調査しています。

  • メインアプリケーションには、5つの非アクティブ化された機能がある場合があります
  • 非アクティブ化された機能を使用しようとすると、アプリケーションは、APKとしてまたは市場からインストールできる拡張機能をダウンロードするように促します。
  • 機能がインストールされると、アクティブになり、使用できるようになります。

したがって、いくつかの無料/無料ではない機能を持つことができます。一部のアプリケーションでこのような動作をすでに見ていますが、名前を覚えていません。

Android SDKに使用するものはありますか?どのように実装できますか?

ご協力いただきありがとうございます。

4

4 に答える 4

7

Serviceでapkを作成し、 http: //developer.android.com/guide/components/aidl.htmlを使用してこのサービスに接続できます。そして、このサービスはあなたが望むことをすることができるので、あなたの想像力だけがあなたの限界です;-)

これについて読むことをお勧めします:http ://developer.android.com/guide/topics/manifest/manifest-element.html#uid2つ以上のアプリ間でより多くのデータを共有することが可能です。しかし、それらは同じキーで歌われるべきです。

于 2012-11-30T11:46:23.870 に答える
7

これがあなたが探しているものかどうかはわかりませんが、始めるために何か提案させてください (おそらく)

例として、たとえば、アプリケーションに (5 ではなく) 2 つのボタンがあるとします。

ボタン 1 とボタン 2。

アプリケーションを起動するときは、必要なアプリケーション (独自のアプリケーションに対するサードパーティ) がインストールされているかどうか、または使用していないかどうかを確認します。PackageManager

これは、ユーザーのデバイスに Google マップがインストールされているかどうかを確認するためにアプリで使用する疑似コードです。

boolean installedMaps = false;

// CHECK IF AN APPLICATION IS INSTALLED
PackageManager pkManager = getPackageManager();
try {
    PackageInfo pkInfo = pkManager.getPackageInfo("com.google.android.apps.maps", 0); // REPLACE THIS "com.google.android.apps.maps" WITH THE ACTUAL PACAKAGE NAME
    // Log.e("pkInfo", pkInfo.toString());
    installedMaps = true;
} catch (NameNotFoundException e) {
    e.printStackTrace();
    installedMaps = false;
}

がtrueboolean installedMapsを返す場合、ボタンを有効にします。それ以外の場合は、ユーザーにダイアログを表示して、Google Play からアプリケーションをダウンロードするように求めます。

そして、アクティブ化または非アクティブ化する必要がある機能ごとにこれを行います。

注: そのためには、他のアプリケーションのパッケージ名を知る必要があります。不明な場合は、デバイスでアプリケーションを実行し、logcat を確認することで見つけることができます。

関連するすべてのアプリケーション間でコンテンツを共有する必要がある場合は、Content Providers

繰り返しますが、これがあなたが探しているものかどうかは完全にはわかりません. 私の仮定が間違っている場合は修正してください。

于 2012-11-30T11:56:16.430 に答える
3

6 つの異なるアプリ/APK を作成し、それらを Play ストアに提出する必要があります。アプリを統合するには、少なくとも 2 つのオプションがあります。

  1. 機能が全画面表示になる場合は、プラグイン アプリから適切なアクティビティを起動できます。
  2. メイン画面 (メイン アプリの画面) にコード (機能)、プラグイン アプリのリソース (レイアウト、画像など) を含める必要がある場合は、http://developer.android.com/guide/topics/manifest/manifest-element を参照してください。 .html#uid . その構成を使用すると、クラス名によるリフレクションでプラグイン アプリからコードにアクセスできます。

Resources res = mPackageManager.getResourcesForApplication("org.example.foo"); を使用して別の apk からリソースにアクセスすることもできます。コンテンツ プロバイダーを使用せずに別の APK のリソースにアクセスすることは可能ですか? を参照してください。詳細については。

于 2012-11-30T11:52:08.997 に答える
1

まず第一に、「追加機能」とは正確には何を意味するのでしょうか。問題は非常に複雑です。

  1. アプリケーションの存在を確認しますPackageManager。使用して、目的のパッケージが見つかった場合はそれを見つけてください。ユーザーにインストールを依頼しない場合は、それを使用してください。
  2. リソースへのアクセス (画像、レイアウトなど) - また、PackageManager
  3. コードの一部を使用してください - 効果を得るためにさまざまな方法があります。インテント (startActivityForResult())、コンテンツ プロバイダー。

無料/有料の機能を導入するためのおそらくより良いアプローチは、アプリ内支払いを使用することです.

于 2012-11-30T11:59:56.640 に答える