我写了一个有很多getter的java类..现在我想获取所有getter方法并在某个时候调用它们.我知道有一些方法,比如getMethods()或getMethod(String name,Class ... parameterTypes),但是我只是想得到吸气剂...,使用正则表达式?谁能告诉我?谢谢!
我想以编程方式启用/禁用数据连接.我使用了以下代码:
void enableInternet(boolean yes)
{
ConnectivityManager iMgr = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
Method iMthd = null;
try {
iMthd = ConnectivityManager.class.getDeclaredMethod("setMobileDataEnabled", boolean.class);
} catch (Exception e) {
}
iMthd.setAccessible(false);
if(yes)
{
try {
iMthd.invoke(iMgr, true);
Toast.makeText(getApplicationContext(), "Data connection Enabled", Toast.LENGTH_SHORT).show();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
dataButton.setChecked(false);
Toast.makeText(getApplicationContext(), "IllegalArgumentException", Toast.LENGTH_SHORT).show();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
Toast.makeText(getApplicationContext(), "IllegalAccessException", Toast.LENGTH_SHORT).show();
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
dataButton.setChecked(false);
Toast.makeText(getApplicationContext(), "InvocationTargetException", Toast.LENGTH_SHORT).show();
} …Run Code Online (Sandbox Code Playgroud) 我写了一个应用程序,通过wifi触发Sony qx智能手机可连接相机.但是,我需要通过另一个本地网络实时传输图像.由于wifi卡用于qx连接,我需要能够在usb上使用以太网从手机上传输图像.Http请求将用于触发摄像头并从手机发送图像.
是否可以在具有两个网络接口设置的手机上的一个Android应用程序中指定某些http请求使用一个网络接口而其他人使用另一个网络接口?这是否需要通过路由表来完成,而不是java?
我正在使用的手机是一个有根的nexus 6p.
更新:
目前,我能够使用以太网适配器(Nexus 6P).设备通过以太网连接到本地网络.当Wi-Fi接口关闭时,我可以ping设备通过以太网连接的本地网络上的所有设备.但是,我无法访问该网络上任何设备(我知道它们正在运行)的Web服务器(不使用DNS),即通过浏览器应用程序进行Http.nexus 6p通过Ubiquiti Station通过以太网连接到网络.这似乎是一个路由问题.
我可以在一个应用程序中连接(usb接口)并使用Wi-Fi,这使我相信可以使用以太网和Wi-Fi.
Update2:
经过更多测试后,似乎是权限问题.因为当我ping网络时,设备连接到以太网而没有先su在终端中运行,因此网络不存在.但是,当我运行su然后ping,我可以ping网络.因此,在访问以太网之前,我的应用似乎需要获得超级用户权限.我已经授予它超级用户访问权限,但没有任何改变.我读到su这篇文章中的一篇评论只是简单地运行.这是因为su只会产生一个死亡的root shell.这也解释了为什么我无法通过浏览器应用程序访问此网络上的任何Web服务器.是否有可能在进行HTTP调用时授予我的应用程序访问以太网接口HttpURLConnection,如果有任何意义(运行su不起作用)?似乎肯定有一个解决方案,因为HttpURLConnection可以通过USB网络共享接口(Nexus 6P称它rndis0)进行调用.
更新3:
我在网上找到了,我可以让我的应用程序成为一个系统应用程序(认为这可能会授予应用程序eth0访问权限).我只是将我的应用程序移动到/system/app然后重新启动.但是,这似乎不再给予应用程序特权(因此无法解决问题),或者制作应用程序系统还需要其他东西,而不仅仅是复制它/system/app.
更新4:
所以我能够在没有root权限的情况下让每个应用程序都能运行以太网!它似乎只适用于DHCP,并且不喜欢我正在使用的静态连接.它适用于启用Wi-Fi,但是,当启用以太网时,我无法联系Wi-Fi网络上的任何设备.有没有解决的办法?是否与设置两个默认网关有关?
我想为我的设备创建一个StandBy活动,到目前为止,我创建了一个活动,在调用时将关闭我的显示.
代码如下:
public class MainActivity extends Activity {
private SensorManager mSensorManager;
private PowerManager mPowerManager;
private WindowManager mWindowManager;
private WakeLock mWakeLock;
private Button button;
private TextView textView;
/** Called when the activity is first created. */
@Override
public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
try {
// Get an instance of the SensorManager
mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
// Get an instance of the PowerManager
mPowerManager = (PowerManager) getSystemService(POWER_SERVICE);
// Get an instance of the WindowManager
mWindowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
mWindowManager.getDefaultDisplay();
setContentView(R.layout.activity_main); …Run Code Online (Sandbox Code Playgroud) 我正在开发一个Android应用程序,将由自定义设备使用,它将具有以太网支持(以及WiFi).
该应用必须启用以太网的设置活动.
请注意,此设置必须由应用程序运行,而不是由android设置运行,因为应用程序将是设备上运行的唯一内容,用户将无法访问后台运行的android.
用户必须能够:1.启用/禁用以太网2.选择DHCP或STATIC 3.如果选择STATIC - 设置IP,网关
问题是我无法以编程方式访问android.net.ethernet,并且没有关于此问题的在线解释.
所以如果有人做过这样的事情,请帮助我走向正确的方向.
谢谢.
有没有办法在 Android 应用程序中访问android.net.EthernetManager?Class.forName("android.net.ethernet.EthernetManager") 和 Class.forName("android.net.EthernetManager") 都会生成 ClassNotFoundException。
android ×5
ethernet ×3
dhcp ×1
gprs ×1
java ×1
reflection ×1
screen-off ×1
settings ×1
static ×1
wakelock ×1