小编zgc*_*009的帖子

验证后防止强制网络门户自动关闭(Android)

所以简单的想法是我们有一个RADIUS服务器设置,允许用户通过用户凭证与我们的Ruckus控制器进行身份验证.在身份验证时,应将用户重定向到允许他们管理MAC身份验证设备的页面.

在我们迄今为止测试的所有内容中,包括"较旧"的Android设备,这似乎没有问题,而且事情按照应有的方式运行.然而,对于Lollipop(5.0+)版本的Android,强制门户网站已经发生了很大变化,其中一部分变化是自动关闭加入网络时启动的强制网络门户.因为我们希望在身份验证后将它们重定向到MAC设备管理页面,以便他们可以添加他们当前登录的设备并避免再次登录,这很糟糕.

我尝试过的:

  1. 检测浏览器是否正在移动设备中启动,并在onbeforeunload中弹出一个尝试保持浏览器打开的警报.

  2. 检测到成功验证后,打开一个指向重定向URL的新浏览器窗口(基本上是自己管理重定向).

  3. 在重定向的URL上执行选项2,然后执行选项1

什么行不通:

  • 要求用户在其设备上禁用强制网络门户选项.不要试图将一般用户指向高级控件.

  • 创建一个开放的网络来访问MAC管理器,它必须落后于某些身份验证.

解决方案现在:

我们对此解决方案不满意,但现在我们只是要求用户通过网络进行身份验证,然后打开浏览器并转到用户用来手动添加设备的基本登录门户页面(非网络身份验证)连接(如打印机,游戏设备等).虽然这有效,但用户必须登录,打开浏览器,手动输入URL并再次登录才是一种痛苦.

这不是人们没有碰到的问题,看到这里,我只是找不到任何遇到问题的人的解决方案.当然有一些方法可以利用javascript或其他东西来保持浏览器在这种情况下打开.如果没有,任何人都有更好的想法来管理事物?

javascript authentication android captivenetwork

11
推荐指数
1
解决办法
1万
查看次数

单个方法为多个按钮实现onTouchListener()

我试图看看是否有一种方法可以创建一个单独的方法来实现多个按钮的触摸监听器,因为我有很多按钮几乎完全相同的事情.它们所做的唯一区别是它们将通过我的sendMessage()方法发送的消息,以及按钮需要多长时间才能发送消息.如果有办法,那可能是什么?而且,为什么不能这样的工作呢?

//Within onCreate Method...
Button mButton = (Button) findViewbyId(R.id.three_sec_button);
mButton = addTouchTimer(mButton, 3, 3);
Run Code Online (Sandbox Code Playgroud)

电话 -

private Button addTouchTimer(Button button, final int sec, final int messageNum){
        button.setOnTouchListener(new View.OnTouchListener() {
            boolean longEnough = false;
            long realTimeLeft = sec * 1000;
            @Override
            // This will make it so that a message is only sent if the button is held down for 3 seconds
            // Otherwise it won't send. It is sent during the hold down process, releasing it returns a false
            // …
Run Code Online (Sandbox Code Playgroud)

android button ontouchlistener

7
推荐指数
2
解决办法
2万
查看次数

ADB用于无线连接,现在我无法连接并获得双端口错误(无法连接*.*.*.*:5555:5555)

我在我的旧Droid X上使用了adb无线应用程序.它几个月都运行良好,完全没问题.我没有更新任何东西,没有任何改变.电脑没有重新启动,手机也没有重启.现在我无法连接.结果如下:

adb connect 192.168.1.19:5555
unable to connect to 192.168.1.19:5555:5555
Run Code Online (Sandbox Code Playgroud)

所以我尝试:

adb kill-server
adb tcpip 5555
Run Code Online (Sandbox Code Playgroud)

结果如下:

* daemon not running, starting it now on port 5307 *
* daemon started successfully *
error: device not found
Run Code Online (Sandbox Code Playgroud)

重启电脑,重启手机,结果相同.就像我说的那样,它无处不在.没有更新,没有任何改变.手机和计算机都被打开了,昨天工作后再次尝试连接,没有运气.电话根深蒂固,今天之前又有0个问题.我可以通过usb连接:

adb disconnect
adb usb
Run Code Online (Sandbox Code Playgroud)

然后"/ adb devices"显示我的手机.但仍无法通过无线连接.

wireless android adb

5
推荐指数
1
解决办法
2695
查看次数

我的应用如何在非root设备上访问管理员级权限?

Android要求超级用户删除,修改或读取根目录中除了只读系统之外的任何内容.

但是,我注意到即使没有root设备,一些应用程序也可以利用这些进程.例如,Norton能够在非root电话上进行设备擦除.有没有办法授予我的应用程序类似的访问权限?

java android root

5
推荐指数
1
解决办法
2506
查看次数

发布Google Maps API v2 Android的流媒体路线

因此,我的应用程序的一部分构建导航方向字符串,然后尝试解析JSON并在我的地图上绘制折线路线.我首先使用Location变量或Locale常量构建我的字符串.我最终得到了类似的东西

https://maps.googleapis.com/maps/api/directions/json?origin=Full Frame Documentary Film 
Festival, Durham, 27701&destination=601 W Peace St, Raleigh,27605&sensor=false&key={API_KEY}
Run Code Online (Sandbox Code Playgroud)
  • 没有新行(为了便于阅读,我添加了它),{API_KEY}是我的实际api键.

我遇到的问题是,当我将URL String传递给此downloadUrl(String urlString)方法时

private String downloadUrl(String urlString) throws IOException {
    Log.d(TAG, "Downloaded string = " + urlString);
    String data = "";
    InputStream stream = null;
    HttpURLConnection urlConnection = null;
    try {

        // Display our JSON in our browser (to show us how we need to implement our parser)
        Intent intent = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse(urlString)); 
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(intent);

        URL url = new URL(urlString);

        // Create a http connection to …
Run Code Online (Sandbox Code Playgroud)

android google-maps inputstream httpurlconnection google-directions-api

4
推荐指数
1
解决办法
1025
查看次数

尝试设置单个位置时整个阵列被重置

我有非常直接的代码,我希望我的问题是我刚看了太长时间.我正在测试一些计算,以确保我在投入一个巨大的列表之前就做到了.我想做的就是通过for循环创建一个新对象,并将它们放在我构造的数组中.

我的Main类中public static void main(String args [])的内容:

PositionHolder[] positions = new PositionHolder[8];
PositionHolder currPosition;

int currPos = 0;
for(int i = 0; i <= 7; i++){

        /* For Random Points */
        currPosition = new PositionHolder(i);
        System.out.println("Resetting " + i);
        positions[i] = currPosition;
        //positions[i].setxPos(100 * Math.random());                // these get set in the
        //positions[i].setyPos(100 * Math.random());                // PositionHolder constructor

        for(int k = i; k >= 0; k--){
            System.out.println(k + ": " + positions[k].getxPos() + ", " + positions[k].getyPos());
        }
}
Run Code Online (Sandbox Code Playgroud)

为了澄清,我的PositionHolder类如下:

public …
Run Code Online (Sandbox Code Playgroud)

java arrays object

0
推荐指数
1
解决办法
64
查看次数