0

対応するアプリがインストールされていることに依存するアプリウィジェットプロジェクトがあります。

したがって、必要なアプリのパッケージ名は次のとおりです。

com.radlmaier.saintscalendar

アプリウィジェットマニフェストでは、タグ内に次のタグがあります。

<uses-library android:name="com.radlmaier.saintscalendar" android:required="true" />

これで、アプリがインストールされていない場合、ウィジェットのインストールは失敗します。ただし、アプリがインストールされている場合、ウィジェットのインストールも失敗し、logcatは次のように言います。

05-19 22:28:35.359: E/PackageManager(14680): Package com.radlmaier.saintscalendarwidget requires unavailable shared library com.radlmaier.saintscalendar; failing!

私は明らかにここで何かが欠けています。共有ライブラリではなく、タグを使用してインストール済みパッケージを確認することはできませんか?誰かが私を啓発できますか?

4

2 に答える 2

1

タグを使用して、共有ライブラリではなく、インストールされたパッケージをチェックすることはできませんか?

それは間違いなく不可能です。<uses-library>SDK アドオン (Google マップなど) を要求するためのものです。

対応するアプリがインストールされていることに依存するアプリ ウィジェット プロジェクトがあります。

Android にはアプリケーション依存メカニズムがないため、これが必要な場合は自分でロールする必要があります。個人的には、これらを 1 つのアプリケーションにまとめることをお勧めします。

于 2012-05-19T20:48:29.907 に答える
0

これを試して:

Intent myIntent = new Intent(Intent.ACTION_MAIN).setClassName("com.radlmaier.saintscalendar", "com.radlmaier.saintscalendar.yourclassname");
boolean isInstalled = getPackageManager().queryIntentActivities(myIntent, 0).size() > 0;

インストールされておらず、Play ストアに送信してインストールする場合は、次の手順を試してください。

Intent marketIntent = new Intent(Intent.ACTION_VIEW);
marketIntent.setData(Uri.parse("market://search?q=pname:com.radlmaier.saintscalendar"));
startActivity(marketIntent);
于 2012-05-20T01:51:17.110 に答える