Я создаю приложение, которое использует последовательный порт устройства.Для этого я пытался использовать PeripheralManager из Android вещей.У меня есть соответствующие разрешения, указанные в моем манифесте:
<uses-permission android:name="com.google.android.things.permission.MANAGE_INPUT_DRIVERS" />
<uses-permission android:name="com.google.android.things.permission.USE_PERIPHERAL_IO" />
Однако, когда я пытаюсь отладить свой код на устройстве, я получаю исключение времени выполнения: STUB!Вот подробности:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.zebratechnologies.androidfulltest_L10AW, PID: 7783
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.zebratechnologies.androidfulltest_L10AW/com.zebratechnologies.androidfulltest_L10AW.SerialPortTestActivity}: java.lang.RuntimeException: Stub!
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2791)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2869)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1602)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6528)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
Caused by: java.lang.RuntimeException: Stub!
at com.google.android.things.pio.PeripheralManager.getInstance(PeripheralManager.java:21)
at com.zebratechnologies.androidfulltest_L10AW.SerialPortTestActivity.Init(SerialPortTestActivity.java:29)
at com.zebratechnologies.androidfulltest_L10AW.SerialPortTestActivity.onCreate(SerialPortTestActivity.java:22)
at android.app.Activity.performCreate(Activity.java:7026)
at android.app.Activity.performCreate(Activity.java:7017)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1215)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2744)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2869)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1602)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6528)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
Вот код, который я пытаюсь запустить на устройстве:
import android.app.Activity;
import android.os.Bundle;
import com.google.android.things.pio.PeripheralManager;
import java.util.List;
public class SerialPortTestActivity extends Activity {
PeripheralManager manager;
List<String> deviceList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Init();
System.out.println(findSerialPorts());
}
protected void Init() {
manager = PeripheralManager.getInstance();
deviceList = manager.getUartDeviceList();
}
public String findSerialPorts() {
if (deviceList.isEmpty()) {
return"No UART port available on this device.";
} else {
return("List of available devices: " + deviceList);
}
}
}
Кто-нибудь знает, почему это происходит?Спасибо за любую помощь!