2013-05-31 57 views
7

我試圖掛在我的便籤平板電腦上內置的Android拼寫檢查服務。當我致電newSpellCheckerSession總是返回null

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

spellCheck始終爲空。該設備是4.1.2,所以它應該至少具有建議字的能力。有沒有人直接使用這個服務給我一些指針?網絡對此非常稀少,因爲它通常通過鍵盤傳送。

+0

你是如何得到建議詞的?這件事對我來說是一個難題! –

+0

也許解決方案是創建自己的拼寫檢查服務? https://developer.android.com/guide/topics/text/spell-checker-framework.html –

+0

它可能已經工作,但三星刪除甚至從設置中選擇一個選項。可能如果安裝了它,它會重新出現。但是這需要做很多工作 –

回答

5

我發現答案 - 三星禁用此模型的功能。所以我要麼必須強制用戶安裝2個APK並跳出一些箍環,要麼將庫包含在我的apk中作爲源代碼。

+0

我想知道,你有沒有找到解決辦法或只是排除這些設備的功能?由於缺少此功能的設備很少。 – CodingIntrigue

+1

我排除了功能。理論上可以將它安裝爲2個,或者可以從AOSP獲取開源版本並直接使用。 –

+0

@GabeSechan非常有幫助。您是如何確定在特定型號上禁用此服務的?我遇到了同樣的問題,我試圖根據他們的設備來評估我們的用戶數量。 – mmilleruva

1

您可能希望顯式設置本地,並將最後一個參數設置爲false,因爲它會檢查設備上的活動語言環境。

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

這實際上有效。由於某些原因,某些三星設備不允許您訪問拼寫設置(無法在設備設置中找到該設置)。因此,指定區域設置總是更好。 最好添加選項以在設置上選擇語言並將其用作語言環境。 – hmartinezd

+0

它沒有爲我工作(測試三星Galaxy A5 - 2016年之前的型號)。 –

+0

不適用於MOTO – JSONParser