【发布时间】:2016-01-25 15:49:54
【问题描述】:
在阅读Android documentation on Device Administration时,它说设置如下:
<activity android:name=".app.DeviceAdminSample" ... ></activity>
<receiver android:name=".app.DeviceAdminSample$DeviceAdminSampleReceiver" ... ></receiver>
public class DeviceAdminSample extends DeviceAdminReceiver { ... }
在我的应用程序上设置接收器名称时,Studio 在...$DeviceAdminSampleReceiver" 部分给出了“无法解析符号”错误,因此我将接收器名称和类名设置为“MyDeviceAdminReceiver”
示例中的接收器名称与设备管理接收器类名称不匹配。美元符号的意义是什么?为什么示例的接收器和接收器类的名称不同?
【问题讨论】:
-
“$”表示 Java 表示法中的内部类。我怀疑某些 Android 工具还没有准备好处理内部类。我建议只使用顶级类。
-
顺便说一句,您应该通过 (a) 准确说明您所引用的文档,(b) 解释您所说的“Studio choked”是什么意思,从而使您的问题更加清晰。
-
我做了您要求的更改。我没有将接收器设置为内部类,这可以解释错误。您的回复回答了我在 AndroidManifest.xml 中正确设置内部类接收器的其他问题。
-
只是为了结束这个循环,我已经发布了上面的答案,还有一些额外的细节。
标签: java android device-admin