Как открыть Android-приложение, если оно установлено, и перейти на Android-маркет, если оно не установлено.
Я хотел бы сделать кнопку Android и иметь возможность запустить другое приложение, если оно уже установлено, и перейти на рынок Android, если оно еще не установлено.
Как это сделать?
С уважением, Вирак
3 ответа
Решение
Используйте код ниже
String packageName = "app_package_name";
Intent intent = getPackageManager().getLaunchIntentForPackage(packageName);
if(intent == null) {
intent = new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id="+packageName));
}
startActivity(intent);
Попробуй с этим -
Просто создайте Button
в вашем макете. И, нажав эту кнопку, проверьте условие ниже -
Button calculateButton = (Button) findViewById(R.id.buttonCalculate);
calculateButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v)
{
if(check() == true)
{
PackageManager pack = this.getPackageManager();
Intent app = pack.getLaunchIntentForPackage(packagename);
startActivity(app);
}else
{
Intent marketIntent = new Intent(Intent.ACTION_VIEW);
marketIntent.setData(Uri.parse("market://details?id=packagename"));
startActivity(marketIntent);
}
}
});
}
public boolean check()
{
try{
ApplicationInfo info = getPackageManager().getApplicationInfo("packagename", 0 );
return true;
} catch( PackageManager.NameNotFoundException e ){
return false;
}
}
Внутри онклика
@Override
public void onClick(View view){
try{
startActivity(getPackageManager().getLaunchIntentForPackage("applicationId"));
} catch (PackageManager.NameNotFoundException e) {
startActivity(new Intent(Intent.ACTION_VIEW).setData(Uri.parse("https://play.google.com/store/apps/details?id=" + "applicationId")));
}
}
Попробуйте вызвать действие Application из вашего кода, используя другое имя пакета приложения и имя действия или фильтры Intent, принадлежащие тому другому приложению, которое вам нужно вызвать...
Intent newIntent;
newIntent = new Intent("other application Package name","class name");
startActivity(newIntent);
Проверьте, запущен он или нет.
// Если он запущен, ничего не делать
// Если это не так, перейдите в пользовательский интерфейс в Google Play Intent.
Intent googlePlay = new Intent(Intent.ACTION_VIEW);
googlePlay.setData(Uri.parse("market://details?id="+"other application package name"));
startActivity(googlePlay);