Android的getSystemService函数解决方案

时间:2015-03-02 21:10:27

标签: java android

我想测试关于usb设备的一些东西,我尝试编写一个小程序,我确信这是错误的,但这不是这个问题的重点。 我确信我的导入没问题,但Android Studio拒绝使用GetSystemService()的错误构建此类。我有消息:

  

错误:(65,43)错误:找不到符号方法getSystemService(String)。

我还使用了来自http://android-er.blogspot.de/2013/10/list-attached-usb-devices-in-usb-host.html的示例,Android Studio也有同样的错误但是如果我从这个网站安装Apk然后它在我的设备上运行,所以我认为Android Studio出了问题。 有什么好主意吗?

OFFTOPIC" QT Creator光年更好"

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);
    }
   }
}

1 个答案:

答案 0 :(得分:2)

如果检查您提供的示例,您将验证是否存在扩展MainActivity类的Activity类,该类又从Context间接扩展。要致电getSystemService(),您需要提供Context。如果您进行DeviceOpenActivity延长Activity,Android Studio将不再抱怨您的通话。

请保留您的课堂声明:

public class MainActivity extends Activity 

不要忘记,您需要为Activity以及Activity方法提供XML布局,例如onCreate()