我试图在Android 4.2.2的Nexus 4中设置飞机模式.我知道这是不可能的,因为AIRPLANE_MODE_ON已移至全局系统设置,它只是一个读取选项.
有没有其他方法可以做类似的事情,我的意思是禁用收音机?我可以禁用蓝牙,wifi和互联网连接,但电话呼叫网络仍然有效.
是否可以使用NDK创建一个库以完全禁用网络?
编辑:我试过java.lang.reflect这个方法:
@SuppressLint("NewApi")
@SuppressWarnings("rawtypes")
private boolean putStringAirplaneMode() throws ClassNotFoundException,
NoSuchMethodException, IllegalArgumentException,
IllegalAccessException, InvocationTargetException {
ContentResolver resolver = context.getContentResolver();
String name = Settings.Global.AIRPLANE_MODE_ON;
String value = (isEnabled() ? "1" : "0");
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
Log.v("AirplaneBatterySaver",
"Using reflection to change airplane mode");
// For JELLY_BEAN_MR1 use reflection. TODO test if works reflection
Class SystemProperties = android.provider.Settings.Global.class;
Class[] parameterTypes = new Class[3];
parameterTypes[0] = ContentResolver.class;
parameterTypes[1] = String.class;
parameterTypes[2] = …Run Code Online (Sandbox Code Playgroud) 我一直在努力升级一些代码以使用ES6语法.我有以下代码行:
delete this._foo;
我的linter提出了使用建议:
Reflect.deleteProperty(this, '_foo');
您可以在此处找到此方法的文档.
MDN文档指出:
Reflect.deleteProperty方法允许您删除对象上的属性.它返回一个布尔值,指示属性是否已成功删除.它几乎与非严格删除运算符相同.
我知道delete关键字不会返回一个表示成功的值,但它的冗长要少得多.
如果我不依赖成功/失败delete是否有任何理由支持Reflect.deleteProperty?这delete是非严格意味着什么?
我觉得ReflectAPI 的很多用例都是用于解决异常情况和/或提供更好的条件流,但代价是更冗长的陈述.我想知道如果Reflect我没有遇到我当前使用的任何问题,使用API 是否有任何好处.
我问过如何将枚举数量作为常量?,我发现在编译期间我无法获得枚举数,因为C#使用反射来实现.
我读了什么是反射,为什么它有用?所以我对反思有一个非常基本的理解.
为了得到枚举的数量,我可以使用Enum.GetNames(typeof(Item.Type)).Length;,这在运行时使用反射发生.
我没有看到获取枚举计数所需的任何运行时知识,因为据我所知,在运行时期间无法更改枚举的数量.
为什么C#必须使用反射来获取枚举数?为什么不能在编译期间这样做?
在学习Java教程时,Reflection和Late Binding让我很困惑.在一些教程中,他们写过它们都是相同的,并且Reflection和Late Binding之间没有任何区别.但其他教程表示存在差异.
我很困惑,所以有人可以解释一下Java中的Reflection和Late Binding是什么,如果可行的话,请给我一些真实世界的例子.
谢谢..
可能重复:
什么是反射,为什么它有用?
Java中反射的确切用法是什么?任何人都能举例说明吗?如果有任何相关概念,请分享.
我在内部类中创建了一个内部类:
public class EnclosingClass {
public class InnerClass {
private EnclosingClass getEnclosing() {
return EnclosingClass.this;
}
public class InnerInnerClass {
private InnerClass getEnclosing() {
return InnerClass.this;
}
private EnclosingClass getEnclosingOfEnclosing() {
return EnclosingClass.this;
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我很惊讶java允许InnerInnerClass直接访问EnclosingClass.这个代码是如何在Java内部实现的?
在InnerInnerClass保持两个指针(一个在InnerClass和其他的EnclosingClass)或InnerInnerClass访问EnclosingClass过InnerClass?
我有控制器根据命令名执行一些命令,取自url.重点是不使用if和switch子句.据我所知,只有两种方法可以做到 - 1)命令模式2)反射.
//Command pattern
class Controller{
private HashMap<String,Command> commands;
public void executeCommand(String commandName){
commands.get(commandName).execute();
}
...
}
//reflection
class Controller{
public void readCommand(){
....
}
public void executeCommand(String commandName){
this.getClass().getMethod(commandName+"Command").invoke(this);
}
...
}
Run Code Online (Sandbox Code Playgroud)
所以问题:
目标:获取我需要发送到应用服务器的令牌
问题:注册返回true,请求完成返回true,但onReq并onResp没有被调用.这是代码:
public class WeChatActivity extends Activity implements IWXAPIEventHandler {
private static final String APP_ID = ;
private IWXAPI api;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_signin);
api = WXAPIFactory.createWXAPI(this, APP_ID, true);
api.handleIntent(getIntent(), this);
regToWx();
getAuthToken();
}
private void regToWx() {
api.handleIntent(getIntent(), this);
boolean registered = api.registerApp(APP_ID);
L.e(this, "registered: " + registered);
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
setIntent(intent);
api.handleIntent(intent, this);
}
public void getAuthToken() {
SendAuth.Req req = new SendAuth.Req();
req.scope = …Run Code Online (Sandbox Code Playgroud) 让我们假设我想检查Object数组中的值是否属于超类或子类,例如我的超类叫Called Animal,我声明了一个类型为Animal的数组
Animal myAnimals[] = new Animal[];
Run Code Online (Sandbox Code Playgroud)
现在假设有像Lion,Tiger,Elephant等动物的子类.如果我要遍历数组,我如何区分子类(Lion,Tiger等)和超类Animal?谢谢!
我有一个编译的可执行JAR文件在Windows平台上失败.
原因是我想要正确地集成某些特定于OS X的属性 - 例如" 关于"窗口.
即使我特意使用条件封锁了代码,JAR仍然NoClassDefFoundError在第一行执行时崩溃.
if (isOSX()) {
com.apple.eawt.Application application = com.apple.eawt.Application.getApplication();
application.setAboutHandler(new com.apple.eawt.AboutHandler() {
@Override
public void handleAbout(com.apple.eawt.AppEvent.AboutEvent ae) {
new AboutWindow();
}
});
application.setDefaultMenuBar(MenuSystem.createMenu());
}
Run Code Online (Sandbox Code Playgroud)
是否可以在我的JAR文件中包含此代码,以便我可以拥有一个一致的代码库?
java ×6
reflection ×5
android ×2
android-ndk ×1
arrays ×1
c# ×1
compile-time ×1
count ×1
ecmascript-6 ×1
enums ×1
javascript ×1
late-binding ×1
macos ×1
object ×1
wechat ×1
windows ×1