Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android反射:在运行时拦截TelephonyManager.getDeviceId函数_Android_Reflection - Fatal编程技术网

Android反射:在运行时拦截TelephonyManager.getDeviceId函数

Android反射:在运行时拦截TelephonyManager.getDeviceId函数,android,reflection,Android,Reflection,我购买的库中的一些函数调用getDeviceId(),这需要READ\u PHONE\u STATE权限。大多数用户不希望他们的电话号码被读取,所以我不想请求此权限 因此,我需要在运行时使用自己的函数截取android.telephony.TelephonyManager.getDeviceId()。我想它可能使用反射,但我找不到任何优雅的解决方案。有什么建议吗?我完全不清楚你想归档什么。您是否有一个lib,从那里调用一些函数,这些函数就地调用TelephonyManager.getDevice

我购买的库中的一些函数调用
getDeviceId()
,这需要
READ\u PHONE\u STATE
权限。大多数用户不希望他们的电话号码被读取,所以我不想请求此权限


因此,我需要在运行时使用自己的函数截取android.telephony.TelephonyManager.getDeviceId()。我想它可能使用反射,但我找不到任何优雅的解决方案。有什么建议吗?

我完全不清楚你想归档什么。您是否有一个lib,从那里调用一些函数,这些函数就地调用
TelephonyManager.getDeviceId()
?是的,但是getDeviceId()需要权限。所以我想在运行时用另一个函数截取getDeviceId()函数。我不认为您可以截取来自您无权访问的库的调用。我建议在你的清单中省略这个权限,并用一个try-catch来包围代码,在这里你什么都不做我知道我不能截取实际的代码。但我认为可以使用反射截取某个函数。据我所知:不,你不能用反射截取或覆盖某个方法。我没有访问lib的权限。每个应用程序都可以访问此功能。请使用此代码检查创建示例应用程序。
 String deviceId = Secure.getString(this.getContentResolver(),Secure.ANDROID_ID);