自定义系统服务上下文错误
Context error of custom system service
我创建了一个与 zigbee 设备通信的系统服务。更新了 API 并创建了 system.img 并在设备上闪烁,并为 android 编程制作了自定义 SDK。
在主要活动中 class、
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" 上遇到错误。当我将光标放在它上面时,它显示 "Must be one of : list of all system services"。
使用其他系统服务有效。 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 因为上下文没有正确链接。如何摆脱上下文错误。或者在Context中适当添加Zigbee服务。
我以此为参考。 https://github.com/nayobix/add-new-hardware-hal-android-5-lollipop
当在框架内注册一个系统服务时(假设您已经构建了该服务)您需要做的不仅仅是添加服务的String
名称,您需要执行后续步骤:
- 在 SystemServer.java 中注册您的服务(挖掘代码并将其添加到 try/catch 所有服务列表)。
- 将您的
AIDL
添加到 frameworks/base/core/java/android/os/
。
- 将您的服务文件名添加到构建内部
frameworks/base/Android.mk
.
您可以在 this 很棒的文章中查看更多信息。
我创建了一个与 zigbee 设备通信的系统服务。更新了 API 并创建了 system.img 并在设备上闪烁,并为 android 编程制作了自定义 SDK。
在主要活动中 class、
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" 上遇到错误。当我将光标放在它上面时,它显示 "Must be one of : list of all system services"。 使用其他系统服务有效。 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 因为上下文没有正确链接。如何摆脱上下文错误。或者在Context中适当添加Zigbee服务。
我以此为参考。 https://github.com/nayobix/add-new-hardware-hal-android-5-lollipop
当在框架内注册一个系统服务时(假设您已经构建了该服务)您需要做的不仅仅是添加服务的String
名称,您需要执行后续步骤:
- 在 SystemServer.java 中注册您的服务(挖掘代码并将其添加到 try/catch 所有服务列表)。
- 将您的
AIDL
添加到frameworks/base/core/java/android/os/
。 - 将您的服务文件名添加到构建内部
frameworks/base/Android.mk
.
您可以在 this 很棒的文章中查看更多信息。