我想测试一些关于USB设备的东西,我尝试编写一个小程序,我确定它是错误的,但这不是这个问题的重点。我确信我的导入是正常的,但Android Studio拒绝构建这个类,并带有关于GetSystemService((的错误。我有消息:
错误:(65, 43( 错误: 找不到符号方法 getSystemService(字符串(。
我还使用了 http://android-er.blogspot.de/2013/10/list-attached-usb-devices-in-usb-host.html 的示例,Android Studio 也有相同的错误,但是如果我从这个网站安装 Apk,那么它就会在我的设备上运行,所以我认为 Android Studio 出了问题。有什么好主意吗?
题外话"QT创造者更好光年">
import android.content.Context;
import android.hardware.usb.UsbManager;
import android.hardware.usb.UsbAccessory;
import android.os.ParcelFileDescriptor;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileDescriptor;
import android.util.Log;
public class DeviceOpenActivity {
private static final String TAG = "DeviceOpenActivity";
UsbManager usbManager = (UsbManager) getSystemService(Context.USB_SERVICE);
UsbAccessory mAccessory;
ParcelFileDescriptor mFileDescriptor;
FileInputStream mInputStream;
FileOutputStream mOutputStream;
public static int fibonacci(int n) {
if (n<2) return n;
return fibonacci(n-1) + fibonacci(n-2);
}
private void openAccessory() {
Log.d(TAG, "openAccessory: " + mAccessory);
mFileDescriptor = usbManager.openAccessory(mAccessory);
if (mFileDescriptor != null) {
FileDescriptor fd = mFileDescriptor.getFileDescriptor();
mInputStream = new FileInputStream(fd);
mOutputStream = new FileOutputStream(fd);
}
}
}
如果检查您提供的示例,您将验证是否存在一个扩展Activity
类的 MainActivity
类,而该类又从上下文间接扩展。为了拨打getSystemService()
您需要有一个可用的Context
。如果您DeviceOpenActivity
延长Activity
,Android Studio将不再抱怨您的电话。
只需像这样保留您的类声明:
public class MainActivity extends Activity
不要忘记,您需要为您的Activity
提供XML布局,以及Activity
方法,例如onCreate()
。