Код: Выделить всё
private boolean isLayarInstalled() {
try {
getPackageManager().getApplicationInfo("com.layar", PackageManager.GET_META_DATA);
return true;
} catch (NameNotFoundException e) {
return false;
}
}
Код: Выделить всё
if (! isLayarInstalled()) {
AlertDialog.Builder dialog = new AlertDialog.Builder(this);
dialog.setMessage(R.string.layar_not_available);
if (isMarketAvailable()) {
dialog.setPositiveButton(R.string.layar_market, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(MARKET_URL));
startActivity(intent);
finish();
}
});
}
dialog.setNegativeButton(R.string.layar_cancel, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
}
});
dialog.show();
} else {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("layar://" + getString(R.string.layer_name)));
startActivity(intent);
finish();
}
}
Разве для getPackageManager не надо разрешение на работу пакетами?