我有几个关于Android连接的问题,如果有人有任何见解,那就太棒了.
1)应用程序想要无线连接时的默认值是多少?是wlan吗?如果关闭wlan或周围没有接入点是3g还是gprs?
2)设备是否始终连接IP?或者当它从wlan或3g禁用时它会丢失其IP地址?
3)是一个应用程序,例如浏览器只连接到一个IP地址?或者它可以连接到每个无线电的多个地址,如gprs或wifi(wlan)?
4)应用程序可以决定打开套接字的连接吗?例如,我可以创建一个应用程序并决定是否将套接字连接到wlan或gprs?或OS是否决定?
5)最后,本机应用程序如何处理连接?以相同的方式?
我正在尝试使用NodeJS编写一段简单的代码,以便从堆栈交换API中获取JSON.
这是我的代码:
var https = require('https'); //Use NodeJS https module
function getUserDataByName(userName, callback){
var stackOverflowUserURL = 'https://api.stackexchange.com/2.2/users?order=desc&sort=reputation&inname='+encodeURIComponent(userName)+'&site=stackoverflow';
https.get(stackOverflowUserURL, function(response){
console.log("headers: ", response.headers);
if (response.statusCode == 200) {
var jsonString = '';
response.on('data', function (chunk) {
jsonString += chunk;
});
response.on('end', function () {
console.log((jsonString));
callback(JSON.stringify(jsonString));
});
}
else{
//error
console.log("Error");
}
});
}
Run Code Online (Sandbox Code Playgroud)
但是,当我运行此数据时,数据总是以类似垃圾的文本状态返回,如下所示:
\\\u001f\b\u0000\u0000\u0000\u0000\u0000\u0004 \u0000uR n 0\f B \u0013 2\u0010 R 7
?m?u\\u0018\\u0004?\\u001d!??Jr=???vS\\u0004\\u0005??????H????Cր Q n \u0012\u0014 {克\\"] + ZV\u001f(V%的|)QU.O\u000e \u0012Ѹ\ u0005\U0003\u00130a \u0006BSӨC^ BWI\u000bCb\u0017e\u0013q \\"DlO` @ ^\NQ\u0017 …
尝试使用Jacoco在Android上的Robolectric测试中获得代码覆盖率,但它在创建报告时拒绝承认我的Robolectric测试.
我的jacoco.gradle文件如下:
apply plugin: 'jacoco'
jacoco {
toolVersion = "0.7.6.201602180812"
}
project.afterEvaluate {
android.applicationVariants.all { variant ->
def name = variant.name
def testTaskName = "test${name.capitalize()}UnitTest"
tasks.create(name: "${testTaskName}Coverage", type: JacocoReport, dependsOn: "$testTaskName") {
group = "Reporting"
description = "Generate Jacoco coverage reports for the ${name.capitalize()} build."
classDirectories = fileTree(
dir: "${project.buildDir}/intermediates/classes/${name}",
excludes: ['**/R.class',
'**/R$*.class',
'**/*$ViewInjector*.*',
'**/*$ViewBinder*.*',
'**/BuildConfig.*',
'**/Manifest*.*']
)
sourceDirectories = files(['src/main/java'].plus(android.sourceSets[name].java.srcDirs))
executionData = files("${project.buildDir}/jacoco/${testTaskName}.exec")
reports {
xml.enabled = true
html.enabled = true
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
有了这个设置,我可以得到覆盖报告,但我得到0%的覆盖率,尽管在"的src/test/java下"有Robolectric测试.
如果我将以下代码添加到该文件:
android { …Run Code Online (Sandbox Code Playgroud) 我想知道是否可以在Android上同时打开wifi和3g连接?
有没有办法控制对Wifi和3g/GPRS数据连接的访问并同时使用它们?
只是一个简单的问题,谷歌并没有呕吐太多.
是否可以在Android中使用本机代码创建VPN连接?
如果是这样,VPN会提供支持以保持活力?
我目前在我的Android应用程序中有一个选项卡屏幕,它从其选项卡中托管其他4个活动.
我按如下方式设置每个标签:
intent = new Intent().setClass(this, LiveActivity.class);
spec = tabHost.newTabSpec("live_tab").setIndicator(getString(R.string.tab_contacts),
res.getDrawable(R.drawable.ic_tab_contacts)).setContent(intent);
tabHost.addTab(spec);
Run Code Online (Sandbox Code Playgroud)
一切正常,但是当我在设备上更改方向时,我会在每个单独的活动中单独处理方向更改,每个活动在XML中也有不同的横向布局.
当我更改设备上的方向时,对于我当前正在进行的活动,更改可以正常工作,但如果我将方向改回(因此将其纵向更改为横向到纵向),那么我的活动似乎会重新加载并重置为其初始状态而非而不是尊重我的onRetainNonConfigurationInstance()方法.
有没有人遇到过这个问题,也许会遇到一个解决方案?
我的Android应用程序上有一个ListView,我动态地更改了它的数据.我使用该onFilterComplete()方法来更改ListView的内容.
预冰淇淋Sandwhich以下代码正常工作:
if(adapter != null) {
adapter.notifyDataSetInvalidated();
lview3.invalidateViews();
adapter.getFilter().filter(aa1.getItem(item), new Filter.FilterListener() {
public void onFilterComplete(int count) {
adapter.notifyDataSetChanged();
if(lview3.getCount() == 0){
lview3.setVisibility(View.GONE);
}
else{
lview3.setVisibility(View.VISIBLE);
}
}});
Run Code Online (Sandbox Code Playgroud)
但是在Ice Cream Sandwhich上,当我使用过滤器时,屏幕没有正确刷新,如果过滤器返回的数量小于之前的ListView,那么旧的列表数据似乎仍然在后台可见,按照这个屏幕截图:

从屏幕截图中你可以看到ListView中第一个条目的位置,这是应该可见的所有内容,你可以看到前面的结果在下面仍然可见,这些只是可见它们不起作用,因为它们不能被点击,就像屏幕没有正确刷新一样.
当我选择主页按钮以通过主屏幕离开应用程序并返回所有内容时,应如下面的屏幕截图所示:

还有什么我必须实现以正确刷新Ice Cream Sandwhich上的ListView吗?有没有其他人遇到过类似的问题?
我在ICS之前做得很好.
android listview refresh android-ui android-4.0-ice-cream-sandwich
我正在尝试使用Android 4.3中引入的Android密钥库提供程序生成和存储的私钥对Android上的字符串进行编码和解码
我可以使用以下代码成功生成并获取私钥:
private void generatePrivateKey(Activity context, String alias){
/** Generate a new entry in the KeyStore by using the * KeyPairGenerator API. We have to specify the attributes for a * self-signed X.509 certificate here so the KeyStore can attach * the public key part to it. It can be replaced later with a * certificate signed by a Certificate Authority (CA) if needed. */
Calendar cal = Calendar.getInstance();
Date now = cal.getTime();
cal.add(Calendar.YEAR, 1);
Date end = cal.getTime(); …Run Code Online (Sandbox Code Playgroud) 我目前在Android中使用AudioTrack和AudioRecord类.
我使用纯PCM数据,但我想知道我的其他编解码器的选项是什么?
从这个页面看来,我只能使用AMR窄带进行编码和解码?
我目前设置Audio类如下:
arec = new AudioRecord(MediaRecorder.AudioSource.MIC,
11025,
AudioFormat.CHANNEL_CONFIGURATION_MONO,
AudioFormat.ENCODING_PCM_16BIT,
buffersize);
atrack = new AudioTrack(AudioManager.STREAM_VOICE_CALL,
11025,
AudioFormat.CHANNEL_CONFIGURATION_MONO,
AudioFormat.ENCODING_PCM_16BIT,
buffersize,
AudioTrack.MODE_STREAM);
Run Code Online (Sandbox Code Playgroud)
所以我的问题是如何将编码从PCM更改为其他支持的编解码器之一?
当我尝试在AudioFormat上更改ENCODING_PCM_16BIT时,我只能获得默认或无效编码选项以及PCM选项.
如果有人知道任何或任何帮助,那么在Android上编辑和解码音频教程的任何链接都会很棒.
谢谢
编辑:我已将我的代码更改为以下内容:
arec = new AudioRecord(MediaRecorder.AudioSource.MIC,
11025,
AudioFormat.CHANNEL_CONFIGURATION_MONO,
**MediaRecorder.AudioEncoder.AMR_NB**,
buffersize);
atrack = new AudioTrack(AudioManager.STREAM_VOICE_CALL,
11025,
AudioFormat.CHANNEL_CONFIGURATION_MONO,
**MediaRecorder.AudioEncoder.AMR_NB**,
buffersize,
AudioTrack.MODE_STREAM);
Run Code Online (Sandbox Code Playgroud)
代码运行正常,但我想知道它实际上将音频编码为AMR_NB,如果这不是一个正确的方法吗?
我在使用原始PCM时遇到了缓冲区溢出,但由于使用MediaRecorder.AudioEncoder.AMR_NB而不是AudioFormat.PCM使用新代码,因此没有出现
我目前有一个大约8-10个数字的数组,定期更改.
因此,大约每5到10秒,数字会更新.
我需要每10秒钟在阵列中获得前3个数字.
这一切都是在移动设备上完成的.
阵列是当前扫描的接入点的RSSI,所以在我的办公室通常大约10,但在现场测试中它可能会增加到大约50.
在那一刻,我遍历数组3次,每次我取出三个最高数字并将它们放在三个先前声明的变量中.
我的问题是在这种情况下我应该怎么做才能提高速度和效率?
android ×9
gprs ×2
java ×2
wifi ×2
3g ×1
amr ×1
android-4.0-ice-cream-sandwich ×1
android-ndk ×1
android-ui ×1
arrays ×1
audio ×1
codec ×1
collections ×1
connection ×1
connectivity ×1
encryption ×1
jacoco ×1
javascript ×1
json ×1
keep-alive ×1
keystore ×1
list ×1
listview ×1
node.js ×1
orientation ×1
pcm ×1
refresh ×1
robolectric ×1
rsa ×1
tabactivity ×1
testing ×1
vpn ×1