2013-05-31 14 views
7

Próbuję podłączyć się do wbudowanej usługi sprawdzania pisowni Androida na moim tablecie z notatnikiem. Gdy zadzwonię pod numernewSpellCheckerSession zawsze zwraca wartość null

final TextServicesManager tsm = (TextServicesManager) getSystemService(
      Context.TEXT_SERVICES_MANAGER_SERVICE); 
    spellCheck = tsm.newSpellCheckerSession(null, null, this, true);   

Sprawdzanie pisowni zawsze jest puste. Urządzenie ma wersję 4.1.2, więc powinno mieć przynajmniej funkcję sugestii słów. Czy ktoś użył tej usługi bezpośrednio, by dać mi jakieś wskazówki? Internet jest bardzo skąpy w tym temacie, ponieważ zwykle przychodzi przez klawiaturę.

+0

Skąd masz sugestie słów? ta sprawa jest dla mnie zagadką! –

+0

Może rozwiązaniem jest utworzenie własnej usługi sprawdzania pisowni? https://developer.android.com/guide/topics/text/spell-checker-framework.html –

+0

Mogło zadziałać, ale Samsung usunął nawet opcję wyboru jednego z ustawień. Być może, gdyby ktoś został zainstalowany, pojawi się ponownie. Ale to dużo pracy, aby dobrze się spisywać –

Odpowiedz

5

I znalazłem odpowiedź - Samsung wyłączył funkcję tego modelu. Więc albo będę musiał zmusić użytkowników do zainstalowania 2 pakietów APK i przeskoczyć jakieś obręcze, albo włączyć bibliotekę jako źródło do mojego apk.

+0

Zastanawiam się, czy kiedykolwiek znalazłeś sposób obejścia tego problemu lub po prostu wykluczyłeś funkcjonalność tych urządzeń? Ponieważ istnieje kilka urządzeń, w których brakuje tej funkcji. – CodingIntrigue

+1

Wyłączyłem funkcję. Można teoretycznie zainstalować go jako 2 apki lub ewentualnie pobrać wersję open source z AOSP i używać jej bezpośrednio. –

+0

@GabeSechan Bardzo pomocny. W jaki sposób ustaliłeś, że ta usługa jest wyłączona w określonych modelach? Wystąpiłam w tym samym problemie i próbuję ocenić, na ilu naszych użytkowników będzie miało to wpływ na podstawie ich urządzeń. – mmilleruva

1

Możesz ustawić lokalnie jawnie i ustawić ostatni parametr na false, ponieważ sprawdza on aktywne ustawienia regionalne urządzenia.

final TextServicesManager tsm = (TextServicesManager) getSystemService(
     Context.TEXT_SERVICES_MANAGER_SERVICE); 
spellCheck = tsm.newSpellCheckerSession(null, Local.ENGLISH, this, false); 
+0

To faktycznie działa. Z jakiegoś powodu niektóre urządzenia Samsung nie pozwoliły ci uzyskać dostępu do Ustawień pisowni (nie można tego znaleźć w ustawieniach urządzenia). Dlatego zawsze lepiej jest określić ustawienia narodowe. Najlepiej dodać opcję wyboru języka w ustawieniach i użyć go jako ustawienia narodowego. – hmartinezd

+0

To nie działa dla mnie (testowanie na Samsung Galaxy A5 - model przed 2016). –

+0

nie działa przy MOTO – JSONParser