Soweit ich das beurteilen kann, stellt die Google Translate Android-App keinen Standard Intent
s zur Verfügung, den Sie verwenden könnten (es ist schade, aber gleichzeitig seltsam. Sie würden denken, Google würde diese Art von Werbung fördern Interaktion zwischen Apps .. sowieso).
Google scheint jedoch die Übersetzungs-API über einen Web-Service geöffnet zu haben. Auf diese Weise können Sie die Übersetzung selbst durchführen und in Ihrer App anzeigen. Es ist ein bisschen mehr Arbeit, aber es sollte die Arbeit machen.
Sie können sich google-api-translate-java ansehen, wenn Sie etwas sparen möchten Schreiben Sie einen API-Wrapper.
Phi Van Ngocs Antwort war fantastisch, danke dafür.
Allerdings funktionierte es zunächst nicht für mich, und nachdem ich die Übersetze-APK untersucht hatte, sah es so aus, als ob sie ihre Dateistruktur leicht modifiziert hätten, so dass die Absicht nun Komponentenname sein sollte:
%Vor%Der Unterschied ist, dass "Übersetzung" vor "TranslateActivity"
hinzugefügt wurdeAlso meine endgültige Version, einschließlich der hartcodierten Übersetzung von Spanisch nach Englisch, ist:
%Vor%Ich habe das gleiche Problem. Anfangs habe ich versucht, die Google Übersetzer-Ajax-API zu verwenden, aber da Google die API-Version 1 nicht mehr unterstützt und Version 2 als kostenpflichtiger Dienst erstellt, funktioniert mein Code nicht mehr. Dann habe ich die Google Übersetzer-App dekompiliert, in den Smali-Code geschaut und einen Hinweis auf die darin enthaltene Logik erhalten. Benutze diesen Code, es funktioniert für mich:
%Vor%OMG! Sie haben es wieder verändert! Sie haben es vernünftiger aussehen lassen, aber nicht mit der vorherigen Version kompatibel.
%Vor%Sieht so aus, als wäre dies eine SEND-Absicht mit zwei zusätzlichen (BTW, optional) Parametern, "to" und "from".
Es gibt ein Problem: "key_text_input" hat Vorrang vor Intent.EXTRA_TEXT und "to" und "from" funktionieren nur mit "key_text_input".
Für Leute, die die API mit jeder neuen Version ändern, sieht es vielleicht vernünftig aus, "key_text_input" in, sagen wir, nur "text_input" umzubenennen, also werden wir uns auf die nächste Veröffentlichung freuen ...
Um auf der sicheren Seite zu sein, würde ich vorschlagen, sowohl Intent.EXTRA_TEXT als auch "key_text_input" auf denselben Wert zu setzen.
Um die obigen Antworten hinzuzufügen:
Es ist wichtig, dass Sie zweibuchstabige Sprachcodes übergeben. Bei Codes mit drei Buchstaben sieht es so aus, als ob die Google Übersetzer-App keine Daten empfängt.
Wenn Intent.ACTION_VIEW
nicht funktioniert, können Sie außerdem Intent.ACTION_SEND
verwenden.
Tags und Links android google-translate