我们已经以编程方式安装了应用程序。
automatically.
指引我。我没有头绪。谢谢。
发布于 2012-07-09 17:25:20
试试这个:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Add respective layout
setContentView(R.layout.main_activity);
// Use package name which we want to check
boolean isAppInstalled = appInstalledOrNot("com.check.application");
if(isAppInstalled) {
//This intent will help you to launch if the package is already installed
Intent LaunchIntent = getPackageManager()
.getLaunchIntentForPackage("com.check.application");
startActivity(LaunchIntent);
Log.i("SampleLog", "Application is already installed.");
} else {
// Do whatever we want to do if application not installed
// For example, Redirect to play store
Log.i("SampleLog", "Application is not currently installed.");
}
}
private boolean appInstalledOrNot(String uri) {
PackageManager pm = getPackageManager();
try {
pm.getPackageInfo(uri, PackageManager.GET_ACTIVITIES);
return true;
} catch (PackageManager.NameNotFoundException e) {
}
return false;
}
}
发布于 2015-01-28 00:27:08
比公认的答案更简洁的解决方案(基于this question):
public static boolean isAppInstalled(Context context, String packageName) {
try {
context.getPackageManager().getApplicationInfo(packageName, 0);
return true;
}
catch (PackageManager.NameNotFoundException e) {
return false;
}
}
我选择将其作为静态实用程序放在助手类中。使用示例:
boolean whatsappFound = AndroidUtils.isAppInstalled(context, "com.whatsapp");
This answer展示了如何在应用程序丢失的情况下从Play Store获取应用程序,尽管在没有Play Store的设备上需要小心。
发布于 2013-07-10 11:10:55
上面的代码对我不起作用。下面的方法起作用了。
使用适当的信息创建一个Intent对象,然后使用以下函数检查Intent是否可调用:
private boolean isCallable(Intent intent) {
List<ResolveInfo> list = getPackageManager().queryIntentActivities(intent,
PackageManager.MATCH_DEFAULT_ONLY);
return list.size() > 0;
}
https://stackoverflow.com/questions/11392183
复制相似问题