小编tre*_*r-e的帖子

获取连接网络的WiFi信号强度

我正在尝试在我的Android应用中显示连接的WiFi网络的信号强度.我尝试过以下方法:

//Receiver for information on the network info
private BroadcastReceiver mNetworkReceiver = new BroadcastReceiver()
{
    @Override
    public void onReceive(Context context, Intent intent) 
    {
        Log.d("INFO", "onReceive()");
        List<ScanResult> scanResult = mWifi.getScanResults();
        for(ScanResult scan : scanResult)
        {
            Log.d("INFO","Network strength: " + String.valueOf(scan.level) + " dBm " + scan.SSID);
        }
    }   
};
Run Code Online (Sandbox Code Playgroud)

然后我在onResume()/ onPause()上注册/取消注册我的接收器:

@Override
public void onResume()
{
    super.onResume();
    mActivity.registerReceiver(mNetworkReceiver, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)); //network info
}

@Override
public void onPause()
{
    super.onPause();
    mActivity.unregisterReceiver(mNetworkReceiver);
}
Run Code Online (Sandbox Code Playgroud)

但这似乎不起作用.我也ACCESS_WIFI_STATE启用了权限.我的接收器只有在我<WiFiManager>.startScan()手动呼叫时才会被呼叫,但我正试图让它与我的广播接收器一起工作,以便我可以随时显示信号强度.我注意到,onReceive()如果我只想要连接网络的统计数据,则提供一个不必要的列表.有什么方法可以改变吗?

编辑:另外,我意识到有一些相关的问题,但我读过的那些并没有太大的帮助.edit2:稍微澄清了我的问题.主要问题是除非我打电话,否则我的接收器永远不会被呼叫startScan().

android broadcastreceiver android-wifi

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

%d格式:需要一个数字,而不是is_valid()的NoneType

我试图在我创建的ModelForm上调用is_valid(),并且由于某种原因它给出了异常:

TypeError at /submit/
%d format: a number is required, not NoneType
Run Code Online (Sandbox Code Playgroud)

有问题的观点是这样的:

def submitted_file(request):
    if request.method == 'POST':
        test = PickUserForm(request.POST)
        if test.is_valid():
            print "test"
            test.save()
    return HttpResponse("File uploaded.")
Run Code Online (Sandbox Code Playgroud)

与此ModelForm连接:

class PickUserForm(ModelForm):

    class Meta:
        model = Submission
        widgets = {
            'comment' : Textarea(attrs={'cols':80, 'rows':20}),
        }
        fields = ['p1_name', 'p2_name', 'p1_url', 'p2_url', 'p1_uid', 'p2_uid', 'p1_subregion', 'p2_subregion', 'comment', 'hacker', 'file']
Run Code Online (Sandbox Code Playgroud)

提交模型非常简单:

class Submission(models.Model):
    p1_name = models.CharField()
    p2_name = models.CharField()
    p1_url = models.CharField()
    p2_url = models.CharField()
    p1_uid = models.IntegerField()
    p2_uid = models.IntegerField() …
Run Code Online (Sandbox Code Playgroud)

python django

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

Android套接字连接组合发送

现在我已经Socket与我的桌面服务器建立了连接.一般来说它工作正常,我试图找到任何剩余的错误.我无法解决的问题是当我发送"发送"按钮时.有时它会将要分别发送的消息组合成一条消息.我很确定这是一个Android问题,而不是我服务器的问题.以下是发生的事情的示例(来自服务器的控制台输出):

XX.XX.XX.XX: {"control":[],"commands":[]}
XX.XX.XX.XX: {"control":[],"commands":[]}
XX.XX.XX.XX: {"control":[],"commands":[]}
XX.XX.XX.XX: {"control":[],"commands":[]}{"control":[],"commands":[]}
Run Code Online (Sandbox Code Playgroud)

这导致我的JSON解析器无法正常工作.我有能力通过蓝牙或Wifi连接到我的服务器,我注意到组合消息的问题只发生在使用Wifi而不是BluetoothSocket时.并不是说我不认为BluetoothSocket可能会滞后到这样的组合,但是在那里运行的流量要少得多.有没有办法确保我的数据包在发送时不会被合并?我环顾了各种Socket选择,不知道该找什么.这是我发送的一个例子,非常基本:

mmDataOut.write(buffer);

哪里mmDataOut只是一个DataOutputStream而且buffer是一个byte[].

另外,我添加了asyncsocket标签,因为我的服务器正在使用它们,不确定这是否会影响任何东西.

java sockets android asyncsocket

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

仅向一个已定义的类发送多个参数

我是Python的新手,我来自Java,在编译时一切都非常明确,所以也许我在这里遗漏了一些东西.我有一个类定义如下:

class UploadFileForm(forms.Form):
    title = forms.CharField(max_length=50)
    file = forms.FileField()
Run Code Online (Sandbox Code Playgroud)

然后我就像这样使用它:

...
form = UploadFileForm(request.POST, request.FILES)
...
Run Code Online (Sandbox Code Playgroud)

我将两个参数传递给了这个类,为什么在运行时这不会给我带来某种异常?我试用它时运行正常.我知道Python确实接受了可变数量的参数,但在这种情况下我没有正确的语法.我想知道为什么这样做是可以的.

python django

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

使用Jake Wharton的ViewPageIndicator

我正在尝试在我的班级中使用ViewPageIndicator库,但遇到了困难.我从Git下载了库,使用库代码创建了一个新的Android项目,并且它充满了错误.我确保v4和v13的支持库存在,它可以减少相当多的错误,但Eclipse仍然会标记数百个错误.其中大多数是由于@Override这导致我相信我错过了一个支持库.GitHub页面上的安装说明尽可能模糊,只是提到将它作为库添加到您的项目中,仅此而已.那么我在这里缺少一些东西吗?

android android-library viewpagerindicator

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