我已经检查了Stack Overflow问题API,以便在Android应用程序中配置静态IP地址.
它适用于Android 2.3.但是,在更高的API级别上没有运气.例如,我把设置
android.provider.Settings.System.putString(getContentResolver(), android.provider.Settings.System.WIFI_USE_STATIC_IP, "1");
android.provider.Settings.System.putString(getContentResolver(), android.provider.Settings.System.WIFI_STATIC_IP, "192.168.0.100");
android.provider.Settings.System.putString(getContentResolver(), android.provider.Settings.System.WIFI_STATIC_NETMASK, "255.255.255.0");
android.provider.Settings.System.putString(getContentResolver(), android.provider.Settings.System.WIFI_STATIC_DNS1, "192.168.0.254");
android.provider.Settings.System.putString(getContentResolver(), android.provider.Settings.System.WIFI_STATIC_GATEWAY, "192.168.0.254");
Run Code Online (Sandbox Code Playgroud)
但我回去查看:
Setting --> Wi-Fi --> Long Press Access Point SSID --> Modify Network --> check Show advanced options
Run Code Online (Sandbox Code Playgroud)
该IP Settings领域仍然陈述DHCP但不是Static.
确实,我可以android.provider.Settings.System.getString()用来取回我设定的东西.它证明设置保存在某处,但系统只是忽略它.
系统使用android.provider.Settings.SystemAndroid 3.x和4.x以外的设置,因为设置是根据接入点SSID设置的.我可以修改一个SSID上的设置,就像它在Android 2.3上的工作方式一样吗?
我有一个TextViewwith ClickableSpan,layout_height和layout_width都是wrap_content.
当文字在TextView不太长时,它工作正常.当文本足够长以使它需要2行时,它也可以正常工作但有一些奇怪的行为.
那是当我点击第二行的空白区域(不填充文本但是部分TextView)时,ClickableSpan onClick()调用回调.
我没想到这一点,因为我只点击空白区域而不是单击跨区文本.虽然它影响不大,但我想知道背后是什么.
我ClickableSpan用以下代码设置:
TextView tv = (TextView) findViewById(R.id.text);
tv.setText("TEXT TEXT TEXT TEXT");
SpannableStringBuilder ssb = new SpannableStringBuilder();
ssb.append(tv.getText());
ssb.setSpan(new TestClickableSpan(), ssb.length()-5, ssb.length(), 0);
tv.setText(ssb);
tv.setMovementMethod(LinkMovementMethod.getInstance());
tv.setOnTouchListener(new TextViewOnTouchListener());
Run Code Online (Sandbox Code Playgroud)
TextViewOnTouchListener:
class TextViewOnTouchListener implements OnTouchListener{
@Override
public boolean onTouch(View v, MotionEvent event) {
Log.d("TextView", "onTouch");
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
TestClickableSpan:
class TestClickableSpan extends ClickableSpan{
@Override
public void onClick(View arg0) {
Log.d("ClickableSpan", "Confirm OnClick: "+arg0.toString());
}
}
Run Code Online (Sandbox Code Playgroud) 我已经学习如何在不延长视频的情况下在此全屏视频视图上调整视频播放的大小.
有了gameowner答案,它的确有效.它还强制保持方面无线电,使其最终在两侧留下黑色条纹.
我想要另一个可选项.那是我不希望两侧有黑色条纹.我希望视频高度仍然保持在屏幕高度.要保持方面无线电,视频宽度应大于屏幕宽度.我无法观看视频的"最左侧部分"和"最右侧部分"并不重要.我想我只需要改变:
if (videoProportion > screenProportion) {
lp.width = screenWidth;
lp.height = (int) ((float) screenWidth / videoProportion);
} else {
lp.width = (int) (videoProportion * (float) screenHeight);
lp.height = screenHeight;
}
Run Code Online (Sandbox Code Playgroud)
至
if (videoProportion < screenProportion) {
lp.width = screenWidth;
lp.height = (int) ((float) screenWidth / videoProportion);
} else {
lp.width = (int) (videoProportion * (float) screenHeight);
lp.height = screenHeight;
}
Run Code Online (Sandbox Code Playgroud)
没关系,但我没有.一旦surfaceView尺寸大于屏幕.这只是显示黑屏但保持aduio播放.
我还尝试将surfaceview持有者固定大小考虑在内:
surfaceViewFrame.getHolder().setFixedSize(lp.width, lp.height);
Run Code Online (Sandbox Code Playgroud)
但它没有解决问题.是否可以播放尺寸大于屏幕的视频?
编辑:好的.我已经意识到我的问题.我想在纵横广播中放大我的视频,但是全屏放大 …
我读了这篇文章。
它说明了如何生成一个KeyPair,但是它没有指定如何根据生成的密钥生成证书签名请求。
根据我的研究,要在 Java 中生成 CSR,来自 Web 的示例通常使用包sun.*或 BouncyCastle 库。似乎没有办法使用标准java.securityAPI生成 CSR 。我读了这个,它似乎在说同样的事情。
我别无选择,只能使用 BouncyCastle 吗?很难想象 Android 开发者不会考虑这种用法。
顺便说一下,文章还提到:
生成新的 PrivateKey 还要求您指定自签名证书将具有的初始 X.509 属性。您可以稍后用证书颁发机构签署的证书替换该证书
假设我最终获得了由证书颁发机构签署的证书。我究竟应该怎么做才能“稍后更换证书”?
我想用服务器进行https请求需要客户端证书身份验证.我查看了为NSURLConnection身份验证挑战创建SecCertificateRef.它按预期工作.
但是,它需要准备包含私钥的p12文件.这将是安全的,因为它需要密码来导入p12文件使用SecPKCS12Import().
但是,可能还有其他选择.那就是ios-client应该签署证书签名请求(.CSR)并让第三方(它将是服务器)签名.
对于我的搜索,我看到我可以SecKeyGeneratePair()用于生成密钥对.但我没有看到任何生成CSR的API.
真的需要openssl才能实现这个目标吗?
此外,有点偏离主题,一旦ios-client以某种方式取回签名证书.我可以SecCertificateCreateWithData()用来检索一个SecCertificateRef().但是,填写一个NSURLCredential.我还需要SecIdentityRef使用来自p12文件的
SecPKCS12Import().我怎样才能恢复一个SecIdentityRef没有SecPKCS12Import()但只是一个像crt或的证书文件der?
首先,我希望WebView可以滚动,但它需要表现得像一张图片,这样滚动不会导致WebView重新排列其布局以适应屏幕.当页面真的比屏幕大时,它应该只提供滚动条.
我已经阅读了如何在缩放时阻止android webview包装内容?.除了执行双击之外,它可以工作.
要重新生成问题,
1.我将一个充满文本的网页加载到全屏WebView.
2.双击屏幕右侧.< - 这里只是放大,没问题
3.双击屏幕左侧.
问题来了.文本重新排列.当我缩放到原始比例.文字只填写屏幕的一半.
无论发生什么事情,如何阻止webView重新排列其布局?