2013-05-31 12 views
7

私のノートタブレットに組み込まれているAndroidのスペルチェックサービスにフックしようとしています。私が電話するとnewSpellCheckerSessionは常にnullを返します

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

スペルチェックは常にnullです。このデバイスは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つのapkとしてインストールするか、AOSPからオープンソース版を入手して直接使用することができます。 –

+0

@GabeSechan非常に役に立ちます。特定のモデルでこのサービスが無効になっていることをどのように判断しましたか?私は同じ問題に遭遇しており、私はどのくらいのユーザーがデバイスに基づいてこの影響を受けるかを評価しようとしています。 – mmilleruva

1

デバイス上のアクティブなロケールをチェックするときに、ローカルの明示的なパラメータと、set lastパラメータをfalseに設定することができます。

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

これは実際に動作します。何らかの理由で、サムスンの一部のデバイスではスペルの設定にアクセスできません(デバイスの設定でイベントを見つけることはできません)。ロケールを指定する方が常に良いでしょう。 設定で言語を選択するオプションを追加し、ロケールとして使用することをお勧めします。 – hmartinezd

+0

それは私のために働いていない(サムスンギャラクシーA5 - 2016年モデル前のテスト)。 –

+0

はMOTOで作業していません – JSONParser

関連する問題