5 Stimmen

Ändern Sie programmatisch die Option "Standardmäßig für diese Aktion verwenden".

Ich habe das normale "Telefon"-Wählprogramm und die neue "Dialer"-App. Wenn ich nun das Häkchen bei "Standardmäßig für diese Aktion verwenden" setze und auf die "Dialer"-App klicke, wird jedes Mal, wenn ich die Telefontaste drücke, die "Dialer"-App automatisch gestartet. Aber wie kann ich das im Code ändern?

Wo wird diese Präferenz gespeichert?

Und wie ist dies zugeordnet? ist dies durch eine Android-Aktion Absicht Zeichenfolge zugeordnet ist?

z.B. die Intent.ACTION_CALL mit einer Anwendung gepaart ist, z.B. der 'Dialer'-Anwendung, die als Standardanwendung jedes Mal gestartet wird, wenn die Intent.ACTION_CALL ausgelöst wird...

Gracias

enter image description here

1voto

Gaket Punkte 6055

Ab API 21 können Sie die nächste Absicht verwenden, um den Benutzer aufzufordern, ein Standard-Dialer zu sein:

    Intent intent = new Intent(TelecomManager.ACTION_CHANGE_DEFAULT_DIALER)
        .putExtra(TelecomManager.EXTRA_CHANGE_DEFAULT_DIALER_PACKAGE_NAME, getPackageName());
    if (intent.resolveActivity(getPackageManager()) != null) {
      startActivityForResult(intent, REQUEST_CODE_SET_DEFAULT_DIALER);
    } else {
      Log.w(getLocalClassName(), "No Intent available to handle action");
    }

enter image description here

0voto

Alexander Fuchs Punkte 1358

Sie können die Standardanwendungen nicht mit einer App ändern aber Sie können per Absicht auf die Einstellungsseite einer Anwendung verweisen, um die Standardeinstellungen festzulegen

Intent i = new Intent(android.provider.Settings.Aplications);
startActivity(i);

oder etwas in dieser Art

0voto

Gautam Sharma Punkte 1
 @RequiresApi(api = Build.VERSION_CODES.M)
    private void chnagedialer() {
        TelecomManager systemService = this.getSystemService(TelecomManager.class);
        if (systemService != null && !systemService.getDefaultDialerPackage().equals("com.android.contacts")) {
            startActivity((new Intent(ACTION_CHANGE_DEFAULT_DIALER)).putExtra(EXTRA_CHANGE_DEFAULT_DIALER_PACKAGE_NAME,"com.android.contacts" ));
        }

    }

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X