从系统服务中调用方法

时间:2019-01-14 19:00:47

标签: java android android-studio reflection android-service

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()

获取正在运行的服务的实际引用,但是它们都不对我有用,因为该类不是静态的,我无法找到获取其实例的方法。

是否存在从非默认系统服务中调用非静态方法的可靠方法?

0 个答案:

没有答案