1

私は、ジグビーデバイスと通信するシステムサービスを作成しました。 APIを更新し、system.imgを作成してデバイスでフラッシュし、アンドロイドプログラミングのカスタムSDKを作成しました。 Mainactivityクラスでカスタムシステムサービスのコンテキストエラー

try { 
     ZigbeeManager zm = (ZigbeeManager) getSystemService(Context.ZIGBEE_SERVICE); 
     zm.write("Hello World!\r"); 
    } catch (Exception ex) { 
     Log.d(TAG, "Error in Zigbee Service: " + ex.toString()); 
    } 

私は言葉 "Context.ZIGBEE_SERVICE" 上でエラーを取得しています。私がカーソルをその上に置くと、 "すべてのシステムサービスのリスト"のいずれかでなければなりません。 他のシステムサービスの使用また、他のシステムサービスと同様に、ZigbeeサービスはContext.classファイルで利用できます。

... 
public static final String WIFI_SERVICE = "wifi"; 
public static final String WINDOW_SERVICE = "window"; 
public static final String ZIGBEE_SERVICE = "zigbee"; 

これをデバイスで実行すると、私はlogcatでこのエラーメッセージを受け取ります。

01-01 12:09:24.126 6874-6874/com.jcxmej.uartcontrol D/UARTControl: Error in Zigbee Service: java.lang.NullPointerException: Attempt to invoke interface method 'int android.os.IZigbeeService.write(java.lang.String)' on a null object reference 

オブジェクトはNullです。それは初期化される必要がありますが、どうですか?しかし、コンテキストが適切にリンクされていないため、Nullだと思います。コンテキストエラーを取り除くにはどうしたらいいですか?または、コンテキストにZigbeeサービスを適切に追加します。

私は参考としてこれを使用しました。 https://github.com/nayobix/add-new-hardware-hal-android-5-lollipop

+0

あなたが投稿した参照には、次のようなサービス呼び出しがあります。 "SensorHubMgmtManager om =(SensorHubMgmtManager)getSystemService(Context.SENSORHUBMGMT_SERVICE);" – Jim

+0

@Jimはい。私のものと似ています。 ZigbeeManager zm =(ZigbeeManager)getSystemService(Context.ZIGBEE_SERVICE); – jcxmej

+0

@UmarAtaそうではありません。 YourServiceとは何ですか? – jcxmej

答えて

1

レジスタ、あなたは次の手順を実行する必要があり、あなたがあなたのサービスのString名を追加以上のことを行う必要がある(すでにサービスを構築しましたと仮定すると)フレームワーク内のシステムサービス:

  1. サービスをSystemServer.javaに登録してください(コードを掘り下げて、すべてのサービスのtry/catchリストに追加してください)。
  2. AIDLframeworks/base/core/java/android/os/に追加してください。
  3. frameworks/base/Android.mk内のビルドにサービスファイル名を追加します。

詳細はthisでご覧になれます。

+0

問題がSystemServerファイルにありましたが、私はaddServiceではなくgetServiceを記述しました。それから私はHAL層の問題に遭遇しました。しかし、今すぐ整理されました。私のアプリはドライバとハードウェアと通信しています。助けてくれてありがとう。 – jcxmej

+0

お手伝いします! @JaffinMK –

関連する問題