Android的getSystemService功能解决方案



我想测试一些关于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()

最新更新