我在市场上有一个应用程序(SIM锁定通知程序)依赖广播接收器,它在收到* android.intent.action.SIM_STATE_CHANGED *的广播意图时作出反应。我开发了最新版本的应用程序,4.0 .3(即SDK级别15)现在我想将其兼容性扩展到较低级别(为不可用的事情提供运行时检查,如操作栏或偏好片段)...问题是我想了解是否* SIM_STATE_CHANGED *事件也是在较旧的平台上生成的。这个意图没有记录,甚至在SDK中的* platforms / android-15 / data / broadcast_actions.txt *中都找不到。我应该深入了解来源了解它的实现位置以及哪个SDK级别?这是供应商特定的事件吗?我有一个HTC One X可以使用它。
答案 0 :(得分:0)
我不确定你的第一个问题。但我可以帮助你回答第二个问题。
现在我想将其兼容性扩展到更低级别 (为不可用的事情提供运行时检查,例如操作栏或 偏好片段)
在这种情况下,反思会帮助你。 使用反射,您可以查询类以获取可用的方法,构造函数等。
假设您要在应用程序中使用PopupMenu。可能是您仍在应用程序的情况 想要在4.0之前的设备上运行。所以要使用反射
以下代码段和Google搜索位将帮助您解决问题。
String sClassName = "android.widget.PopupMenu";
try {
Class classToInvestigate = Class.forName(sClassName);
Yes!!! Class is aviliable now do whatever you want to do with PopupMenu.
// Dynamically do stuff with this class
// List constructors, fields, methods, etc.
} catch (ClassNotFoundException e) {
// Class not found!
it means application is running on pre 4.0 version device.
} catch (Exception e) {
// Unknown exception
}