我有一个应用小部件项目,它依赖于安装相应的应用程序。
因此,所需应用程序的密码名称为
com.radlmaier.saintscalendar
在app小部件清单中,我在标记内有以下标记:
<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!
我显然在这里遗漏了一些东西。 是否无法使用标记来检查已安装的软件包而不是共享库? 有人可以开导我吗?
答案 0 :(得分:1)
是否无法使用标记来检查已安装的软件包而不是共享库?
这绝对不可能。 <uses-library>
用于要求SDK插件(例如Google地图)。
我有一个应用小部件项目,它依赖于安装相应的应用程序。
Android不是应用程序依赖机制,所以如果你想要这个,你必须自己滚动它。就个人而言,我建议简单地将这些组合成一个应用程序。
答案 1 :(得分: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);