1

私はそれをコーディングしようとしました、私はグーグルとスタックオーバーフローでそれを解決しようとしました、何も見つかりませんでした:=)うまくいけば、誰か他の人がより良いアイデアを持っていると思います、私がすべてを正しくするかどうかわかりません:

私は2つのアプリケーションを持っています:ad(メインアプリ)/ adfree-pro(ライセンスだけで広告なしで広告アプリを開始します; P)

問題は、ランチャーにプロバージョン(プロアイコン付き)を入れたいということです。これにより、ランチャーにはない(通常の広告アプリ)通常の広告アプリが起動します。

ランチャーから広告アプリを削除してみました(私の調査により、ランチャーから削除する必要があります)

pkgMgr.setComponentEnabledSetting(new ComponentName(PACKAGE_NAME、PACKAGE_NAME + ".Main")、PackageManager.COMPONENT_ENABLED_STATE_DISABLED、PackageManager.DONT_KILL_APP);

その結果、ランチャーのアイコンは正しいです;)しかし、ランチャープロアクティビティのショートカットがなくても、アプリケーションが電話で見つからず、起動、開始されません。そこにあるようです(ショートカットを作成できます)が、起動しようとするとアクティビティ例外でクラッシュします。

02-18 14:38:59.237:エラー/ AndroidRuntime(9941):原因:android.content.ActivityNotFoundException:明示的なアクティビティクラスが見つかりません{PACKAGE_NAME / PACKAGE_NAME.Main}; AndroidManifest.xmlでこのアクティビティを宣言しましたか?

これは属していないようです(エラーメッセージ)。ランチャーのエントリを単に削除しただけではなく、アプリケーションに多くのことが起こったようです。

たくさんの人に感謝します、この状況のた​​めのすべての回避策は感謝します:)よろしく:)

4

2 に答える 2

0

しかし、ランチャー プロ アクティビティのショートカットがなくても、アプリケーションを電話で見つけたり、起動したり、開始したりできません。

アプリケーションではなく、アクティビティです。

したがって、あなたのLAUNCHER活動が _ _ これで、 を非表示にすることができますが、 とやり取りすることは引き続き可能です。 PS: この方法で実行した後は、アプリの動作をテストすることを忘れないでください ;)BaseActivityBaseFakeActivityLAUNCHERBaseActivityBaseActivityfinish()

BaseFakeActivityBaseActivity

于 2013-01-26T16:23:16.383 に答える
0

アプリをインストールしてランチャー アイコンを非表示にすることはできません。アイコンと戦おうとはしませんが、代わりにイーサアイコンを使用してアプリを起動できるという、あなたのアプリケーションと同様に機能するアプリケーションでそれに対処する方法です。明らかに、メイン (無料) アプリで行う必要はなく、プロ アイコンからアプリを起動するコードは次のようになります。

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle bundle) {
    super.onCreate(bundle);
    // check if main app is installed. If yes then start it
    if (appExists()) {
        Log.d(TAG, "Started main app from Pro");
        Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("myapp://com.myapp.main"));
        startActivity(intent);
        finish();
    } else {
        // display view with link back to Market 
        onAppNotExists();
    }
}

appExists()おそらくある種のライセンスチェックである実装はあなた次第です

もちろん、アプリの共通コードをライブラリ プロジェクトとして開発し、コードを複製せずに 2 つのフレーバーで配布することもできます。

于 2011-02-18T18:36:28.203 に答える