Android中有无法从Android Studio引用的系统和自定义服务。可以说,我想从PersistentDataBlockManager服务调用getFlashLockState()方法。默认方法是添加服务引用。
import android.service.persistentdata.PersistentDataBlockManager;
将以下行写入代码将导致错误:Android Studio无法将符号“ PersistentDataBlockManager”作为其默认值进行解析
android.service。*
不包含对持久数据服务的引用。我尝试使用反射来按名称获取类,并能够获得如下引用:
Class<?> referenceClass = Class.forName("android.service.persistentdata.PersistentDataBlockManager");
Object referenceObject = referenceClass.newInstance();
但是实例化一个对象引发了一个错误:该类没有零参数构造函数。检查其https://dev.mysql.com/doc/refman/5.7/en/alter-table.html后,我发现其唯一的构造函数如下所示:
public PersistentDataBlockManager(IPersistentDataBlockService service)
基本上,它只是一个包装器,接受系统库中类的实际实现。我还尝试使用其他类型的反射,例如:
context.getSystemService()
获取正在运行的服务的实际引用,但是它们都不对我有用,因为该类不是静态的,我无法找到获取其实例的方法。
是否存在从非默认系统服务中调用非静态方法的可靠方法?