Jak programowo sprawdzić, czy aplikacja jest zainstalowana, czy nie w Androidzie?
Mamy zainstalowane aplikacje programowo.
- Jeśli aplikacja jest już zainstalowana w urządzeniu, aplikacja zostanie otwarta automatycznie.
- w przeciwnym razie zainstaluj konkretną aplikację.
Prowadź Mnie. Nie mam pojęcia. Dzięki.
124
3 answers
Spróbuj z tym:
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("Application is already installed.");
} else {
// Do whatever we want to do if application not installed
// For example, Redirect to play store
Log.i("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;
}
}
278
Author: Aerrow,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-04 14:07:28
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-04 14:07:28
Nieco czystsze rozwiązanie niż przyjęta odpowiedź (na podstawie tego pytania):
public static boolean isAppInstalled(Context context, String packageName) {
try {
context.getPackageManager().getApplicationInfo(packageName, 0);
return true;
}
catch (PackageManager.NameNotFoundException e) {
return false;
}
}
Zdecydowałem się umieścić go w klasie pomocniczej jako statyczne narzędzie. Przykład użycia:
boolean whatsappFound = AndroidUtils.isAppInstalled(context, "com.whatsapp");
Ta odpowiedź pokazuje, jak uzyskać aplikację ze Sklepu Play, jeśli brakuje aplikacji, chociaż należy zachować ostrożność na urządzeniach, które nie mają Sklepu Play.
50
Author: Jonik,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-15 11:46:33
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-15 11:46:33
Powyższy kod nie działał dla mnie. Poniższe podejście zadziałało.
Utwórz obiekt Intent z odpowiednimi informacjami, a następnie sprawdź, czy Intent można wywołać, czy nie za pomocą następującej funkcji:
private boolean isCallable(Intent intent) {
List<ResolveInfo> list = getPackageManager().queryIntentActivities(intent,
PackageManager.MATCH_DEFAULT_ONLY);
return list.size() > 0;
}
22
Author: Priyank Desai,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-08-29 20:55:38
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-08-29 20:55:38