解决方案 »

  1.   

    我也刚用了反射方法,调用screenshot,但是只是在个别的机子上可以用。
      

  2.   

    再补一句,而且,在Manifest文件中,要写 android.uid.sytem。
      

  3.   

    既然再API里hide了而没有开放出来,说明google可能随时在后面版本的API里删掉这个方法。
    你要看下不可以用的机器系统版本,API里应已经删掉了。
    所以catch到NoSuchMethodException也是正常的,catch后换一种处理方式,这算是处理兼容了,不意外。很多为了兼容会case不同的os版本写不同的代码,有时候这也是难免的。最后也可能实在处理不了了,也要给个友好的提示,系统不支持之类的。e.printStackTrace()肯定不是解决之道。
      

  4.   

    我不认为会删掉,大量的底层都是hide的,应该是Google不想被调用,要删掉直接@Deprecated就好了。
    确认手机版本是有这个方法的,因为安卓中uiautomator调用的就是这个方法,能正常执行。
    你的建议也很好,以后会注意catch,谢谢。