小编blu*_*oid的帖子

如何使用NetworkRequest.Builder()指定wifi网络.setNetworkSpecifier(string)

我正在寻找一种让Android 5.0平板电脑连接到内部网的方法,出于安全考虑,该内部网没有互联网连接.

问题是谷歌自4.4/5.0以来在Android中构建的强制门户保护.对android connectivitycheck进行调用以检查互联网连接,当此呼叫失败时,wifi网络被标记为不工作并避免.很蹩脚.

其他人遇到了同样的问题,有些人建议使用android 5中引入的新API,请参阅: Android 5.0 Lollipop和4.4 KitKat忽略了我的WiFi网络,enableNetwork()无用

关于此的文件非常含糊:

NetworkRequest.Builder.setNetworkSpecifier(String  networkSpecifier)
Run Code Online (Sandbox Code Playgroud)

"对此字符串的解释是特定于承载的,使用它的承载者应记录其详细信息.例如,蓝牙可能使用某种设备ID,而WiFi可能使用ssid和/或bssid.蜂窝可能使用载波spn"

我试过这个并没有用.主要问题是,一旦我使用 setNetworkSpecifier()没有网络被发现.我尝试使用bssid(mac)和ssidAP.

看起来过滤器正在工作,但不清楚它应该如何工作.如果我省略了setNetworkSpecifier()呼叫1网络,但无法确定哪个.至少它显示我的代码有效.

那么如果ssid和bssid不起作用,我应该在这里放什么?

这是我的代码.

 private void connect(String ssid, Context context) {
    Log.i(TAG, "try connect to! " + ssid);
    ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

        NetworkRequest nr = new NetworkRequest.Builder().addTransportType(NetworkCapabilities.TRANSPORT_WIFI).
                removeCapability(NetworkCapabilities.NET_CAPABILITY_TRUSTED).
                removeCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET

                setNetworkSpecifier(ssid). //<--- here is the problem
                build();
        ConnectivityManager.NetworkCallback callback 
             = new ConnectivityManager.NetworkCallback() {
                @Override
                public void onAvailable(Network network) {
                    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                        Log.i(TAG, "onAvailable …
Run Code Online (Sandbox Code Playgroud)

networking android android-wifi captiveportal

13
推荐指数
2
解决办法
4398
查看次数

用于为3d打印创建3d对象的Java库

我正在寻找一个java库来创建3d几何,然后将其转换为.stl文件,这样我就可以使用3d打印机来打印我的对象.

我可以想象使用一个3D图形对象,可以在graphics2d对象上绘制相同的图形:

 Buffered3DObject obj = new Buffered3DObject(200,200,200, Unit.MM); 
 Graphics3D g3 = obj.getGraphics();
 Stroke3d stroke = new Stroke(3);
 g3.setStroke(stroke);
 g3.drawpipe(x1,y1,z1,x2,y2,z2);
 obj.exportToSTL("filename.stl");
Run Code Online (Sandbox Code Playgroud)

好吧,我只是编写代码:).但是这样的事情.

谁知道我怎么能把这样的东西拉下来?任何像这样做的开源库?

很高兴能够通过网站的用户输入生成自定义对象.

抢.

编辑:即使问题已经结束(并且没有人关心我的问题,我发现了答案)(我发布了它,所以其他人也可以找到它):

作为OpenScad的包装器,它有一个java库.java包装器称为JavaScad.可以在这里找到JavaScad

java 3d openscad

10
推荐指数
1
解决办法
5478
查看次数

如何以编程方式检测(三星)可折叠手机

如何检测您的应用程序是否在可折叠手机上运行?有没有api可以调用?

查看配置文档(https://developer.android.com/reference/android/content/res/Configuration.html)我找不到任何可以探测以确定可折叠的常量。

不幸的是,对于我正在开发的应用程序来说,仅仅监听 onConfigurationChanges 是不够的。为了正确工作,我们需要禁用一些功能(我知道,不应该这样做,但是那艘船几年前就已经航行了;)

android

7
推荐指数
0
解决办法
3640
查看次数

将Java编译为原生Android而不是在C中写入

我们正在寻找一种方法来保护我们的代码并且混淆是不够的.是否可以将Android Java代码编译为原生Android库?

另一个选择是在c中编写代码并通过JNI自己连接它.但是我们所拥有的代码非常精细且经过充分测试,对c的重写将开始全面测试.

问候,Rob.

PS:在我们运行x86硬件并使用Excelsior Jet作为保护手段之前.由于我们希望转向更具成本效益(更便宜)的Arm/android硬件,我们正在寻找一种类似于Jet的类似解决方案,唉只能编译为x86.

java-native-interface android android-ndk

6
推荐指数
1
解决办法
955
查看次数

在Vaadin 7中检测平板电脑

我正在寻找一种方法来轻松检测我的用户是在平板电脑上还是在全屏电脑上.知道怎么做吗?

getSession().getBrowser().isTouchDevice()不适用于越来越多拥有触摸屏的电脑.并且无论如何都在Vaadin 7中弃用了getBrowser().

我没有使用vaadin-touchkit(我应该吗?)

问候,Rob.

vaadin

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

web.xml如何在使用/*后转发到html文件

我正在使用一个具有此映射的servlet(实际上是一个vaadin servlet)

<servlet-mapping>
        <servlet-name>my Application</servlet-name>
        <url-pattern>/*</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)

我想为我的一些html文件做一个例外.如果它们在子文件夹中,则可以.

我怎么做?是否有一个Tomcat-servlet指向(在部分中)处理文件读取?

html tomcat web.xml servlets

3
推荐指数
1
解决办法
1834
查看次数

如何在没有 TextField 的情况下监听 Jetpack Compose 中的键盘事件?

我正在做一个我不能使用的文本输入TextField。我需要 不支持的文本转换TextField

如何获取软件/屏幕键盘事件?

Modifier.onKeyEvent()不适合我,因为由于某种原因它只适用于硬件键盘。

这应该很容易,对吧?我还没有找到解决办法。

android android-jetpack-compose

3
推荐指数
1
解决办法
1983
查看次数

如何在没有父项的情况下将xml充气为自定义视图

我有一个简单的xml,我想作为java视图对象膨胀.我知道如何给视图充气:

view = LayoutInflater.from(context).inflate(R.layout.alarm_handling, this);
Run Code Online (Sandbox Code Playgroud)

但后来我有一个视图,它是父母的孩子(这个).然后,杂乱的问题开始于设置布局参数并具有我不需要的额外布局.这些在xml中更容易做到.

使用Activity,可以调用:setContentView()但使用View是不可能的.

最后我想有一个Java类(扩展ViewSomething),我可以在另一个xml中引用它.我看过ViewStub,几乎就是答案,除了它是最终的:(

public class AlarmView extends ViewStub{ //could work if ViewStub wasn't final

public AlarmView (Context context, AttributeSet attrs) {
    super(context);

    //using methods from ViewStub:
    setLayoutResource(R.layout.alarm_handling);
    inflate();
}
}
Run Code Online (Sandbox Code Playgroud)

那怎么样呢?扩展什么才能调用setContentView()或setLayoutResource()?

我看了很多SO答案,但没有一个适合我的问题.

android android-layout

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