2015-03-31 3 views
9

Ich entwickle eine Android APP basierend auf Accessibility Funktion. Da es nicht programmatisch in Android Enable/Disable Accessibility Service (Siehe How to Programmatically Enable/Disable Accessibility Service in Android), also ich den Benutzer auf Accessibility Settings Seite (Bild 1) über den Code führen unter:Wie kann ich die Eingabehilfen-Einstellungsseite meiner APP in Android starten?

public static boolean gotoAccessibilitySettings(Context context) { 
    Intent settingsIntent = new Intent(
      Settings.ACTION_ACCESSIBILITY_SETTINGS); 
    if (!(context instanceof Activity)) { 
     settingsIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    } 
    boolean isOk = true; 
    try { 
     context.startActivity(settingsIntent); 
    } catch (ActivityNotFoundException e) { 
     isOk = false; 
    } 
    return isOk; 
} 

Und dann müssen die Benutzer die Sub-Einstellungen, um herauszufinden, Etikett meiner APP, klicken Sie darauf, und jetzt die Accessibility Settings Seite meiner APP anzeigen (Bild 2).

Ich bezweifle, dass, wenn überhaupt, meine APP Accessibility Settings Seite (Bild 2) direkt starten?

Antwort

2

Vielleicht unter dem Code können Sie helfen:

Intent intent = new Intent(); 
     intent.setClassName("com.android.settings", 
       "com.android.settings.Settings"); 
     intent.setAction(Intent.ACTION_MAIN); 
     intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK 
       | Intent.FLAG_ACTIVITY_CLEAR_TASK 
       | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS); 
     intent.putExtra(PreferenceActivity.EXTRA_SHOW_FRAGMENT, 
       "the fragment which you want show"); 
     intent.putExtra(PreferenceActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS, 
       extras); 
     startActivity(intent); 

Oder Sie können das Schlüsselwort „Fragment Injection“, um weitere Informationen zu suchen; diesen Link Check out, ist es sinnvoll für Sie Fall:

+0

Amazing Trick! Danke @Money Zhang! –

+0

@money zhang was soll ich in die "das Fragment, das Sie wollen, zeigen "? Ich möchte meine eigenen Accessibility-Service-Einstellungen eingeben .. – Didi78

+0

Ich versuchte meinen App-Namen, Paketname Service-Klassennamen und etc anstelle von" das Fragment, das Sie zeigen möchten ". Bitte sagen, was soll ich tippen? – David

8

können Sie manuell die Einstellungen zur Barrierefreiheit öffnen mit der folgenden Intent (wenn android.content.Intent und android.app.Intent haben beide importiert):

Intent intent = new Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS); 
startActivity(intent); 

Überprüfen Sie die folgenden Ressourcen für weitere Informationen:

+1

Vielen Dank für Ihre Antwort, @timgws. Aber mein Problem ist offen die Einstellungen der Barrierefreiheit meiner eigenen App direkt, nicht die Homepage der Einstellungen für die Barrierefreiheit :( –

Verwandte Themen