如果我创建了一个依赖于另一个或多个应用程序(例如: Facebook和Twitter应用程序)的应用程序,但它们还没有安装,那么有什么方法可以检查这些依赖项并同时安装它们吗?
发布于 2011-10-25 10:02:44
我是在我的应用程序中这样做的,它需要安装zxing扫描器应用程序。您将希望在onclick或ontouch中这样做:
try{
Intent intent = new Intent("com.google.zxing.client.android.SCAN");
intent.setPackage("com.google.zxing.client.android");
startActivityForResult(intent, 0);
} catch (Exception e) {
createAlert("Barcode Scanner not installed!", "This application uses " +
"the open source barcode scanner by ZXing Team, you need to install " +
"this before you can use this software!", true);
}
打电话
public void createAlert(String title, String message, Boolean button) {
// http://androidideasblog.blogspot.com/2010/02/how-to-add-messagebox-in-android.html
AlertDialog alertDialog;
alertDialog = new AlertDialog.Builder(this).create();
alertDialog.setTitle(title);
alertDialog.setMessage(message);
if ((button == true)) {
alertDialog.setButton("Download Now",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
Intent browserIntent = new Intent(
Intent.ACTION_VIEW,
Uri.parse("market://search?q=pname:com.google.zxing.client.android"));
startActivity(browserIntent);
}
});
}
alertDialog.show();
}
然后,在整理完所有的代码之后,我意识到你要求它和你的应用程序同时安装。不确定是否应该发布这段代码,但这可能会有所帮助。
发布于 2011-10-26 01:14:06
简短回答:否,您不能将其他应用程序自动安装为依赖项。
更长的答案:
Android不允许您将其他应用程序声明为依赖项来安装。作为一个系统,市场似乎是为单个应用程序安装而设计的--而不是Linux发行版风格的超级依赖图。
在运行时,您可以测试安装的应用程序,如果是的话,可以将您的用户押上市场。请参阅@QuickNick (测试是否安装了应用程序)和@TerryProbert (游向市场)所建议的技术(如果这是您想要的)。
您最好的选择可能是设计您的应用程序,以便在没有依赖项的情况下优雅地降级,并建议(或坚持)它们去市场安装它们。
发布于 2011-10-11 10:39:28
从这里开始:
Intent mediaIntent = new Intent("com.example.intent.action.NAME");
// add needed categories
List<ResolveInfo> listResolveInfo = getPackageManager().queryIntentServices(mediaIntent, 0);
if (listResolveInfo.size() != 0) {
//normal behavior
} else {
//install what you need
}
我给出了查询服务的例子。如果您想检查活动,那么将调用queryIntentActivities()。
https://stackoverflow.com/questions/7724579
复制相似问题