小编GSe*_*erg的帖子

什么触发了BluetoothDevice.ACTION_ACL广播?

我想知道远程物理设备中的哪些事件在监听设备中触发ACTION_ACL_CONNECTED和ACTION_ACL_DISCONNECTED.我的测试结果毫无意义.我已经在几分之一的范围内收集了几个设备:

运行Android 3.1的Galaxy Tab P7500

运行Android 2.2的i5500手机

带有蓝牙USB加密狗的PC winXP

两个带开/关按钮的耳机

首先,我手动配对Tab中的所有设备.除了Tab之外,PC和手机都没有与任何其他设备配对.(标签永远不会以任何方式找到其中一个耳机,但可以通过手动和编程方式轻松找到它.然后我有一个简单的应用程序来启动发现,并监听和显示ACL广播.这就是发生的事情(每次都是一样的,它的疯狂一致):

  • 来自Tab的startDiscovery()启用了所有设备: - PC是唯一找到的设备
  • 在PC上禁用蓝牙: - 选项卡上没有反应
  • 在PC上启用蓝牙: - 选项卡上没有反应

  • 首次打开耳机电源: - 选项卡上的ACTION_ACL_CONNECTED

  • 关闭耳机电源: - 标签上没有反应
  • 再次打开耳机: - 选项卡上的ACTION_ACL_DISCONNECTED和ACTION_ACL_CONNECTED快速连续

  • 禁用选项卡上的蓝牙: - 选项卡上没有反应

  • 在选项卡上启用蓝牙: - 选项卡上的耳机ACTION_ACL_CONNECTED

  • 来自手机的startDiscovery(): - PC是手机找到的唯一设备,虽然手机只与Tab配对,而不是与PC配对.否则,手机只会响应Tab从不作出反应的耳机.

怎么弄出这个烂摊子?即使配对并在范围内上电,也不能依赖导致ACTION_ACL_CONNECT的设备吗?

以下是BroadcastReceiver和onCreate活动的方法,但我不认为此代码中的细节很重要:

BroadcastReceiver intentReceiver = new BroadcastReceiver() {
    public void onReceive(Context context, Intent intent) {
        String action = intent.getAction();
        BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
        if (device != null) {
            name = device.getName();
        Log.v(TAG, "Device=" + device.getName());
        }
        else {
            name = "None";
        } …
Run Code Online (Sandbox Code Playgroud)

android bluetooth device broadcastreceiver

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

绿色例外?

当在VStudio中遇到未处理的异常时,调试器通常会将行YELLOW突出显示为抛出异常的行.

但是,有时我遇到调试器突出显示为绿色的异常,如下所示:

在此输入图像描述

我一直把它们视为正常的异常,但今天我决定问,因为google/bing没有为"Visual Studio Green Exceptions"产生任何结果

.net exception visual-studio

25
推荐指数
2
解决办法
1977
查看次数

三元运算符VB vs C#:为什么解决Nothing为零?

我只是在脚下射击,想知道是否有实际的理由让这种情况成为可能.
无论如何,这个问题可以留在未来的脚射手的方便.


假设我们在vb.net中有一个可以为null的值:

Dim i as Integer?
Run Code Online (Sandbox Code Playgroud)

我们希望根据条件为其分配值,并使用三元运算符,因为它非常简洁和东西:

i = If(condition(), Nothing, 42)
Run Code Online (Sandbox Code Playgroud)

也就是说,如果条件是true,则采用可空性,否则采用该值.
射击发生的时间点.没有明显的原因VB编译器决定,对于共同的基类型NothingIntegerInteger,在该点它默默地平移语句:

i = If(condition(), 0, 42)
Run Code Online (Sandbox Code Playgroud)

现在,如果您要在C#中执行此操作:

i = (condition()) ? null : 42;
Run Code Online (Sandbox Code Playgroud)

你会立即得到一个编译器错误,说<null>不能很好地混合int.这很棒,因为这次我采用C#方式,我的脚会更健康.为了编译,你必须明确地写:

i = (condition()) ? null : (int?)42;
Run Code Online (Sandbox Code Playgroud)

现在,您可以在VB中执行相同操作并获得正确的null-ness:

i = If(condition(), Nothing, CType(42, Integer?))
Run Code Online (Sandbox Code Playgroud)

但这需要首先拍摄你的脚.没有编译器错误,也没有警告.这是Explicit OnStrict On.


所以我的问题是,为什么?
我应该把它当作编译器错误吗?
或者有人可以解释为什么编译器会以这种方式运行?

c# vb.net nullable ternary-operator

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

如何调用父构造函数?

假设我有以下代码段.

function test(id) { alert(id); }

testChild.prototype = new test();

function testChild(){}

var instance = new testChild('hi');
Run Code Online (Sandbox Code Playgroud)

有可能得到alert('hi')吗?我undefined现在明白了.

javascript inheritance

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

反射性能 - 创建代理(属性C#)

我在使用反射时遇到了性能问题.
所以我决定为我的对象的属性创建委托,到目前为止得到了这个:

TestClass cwp = new TestClass();
var propertyInt = typeof(TestClass).GetProperties().Single(obj => obj.Name == "AnyValue");
var access = BuildGetAccessor(propertyInt.GetGetMethod());
var result = access(cwp);
Run Code Online (Sandbox Code Playgroud)
static Func<object, object> BuildGetAccessor(MethodInfo method)
{
    var obj = Expression.Parameter(typeof(object), "o");

    Expression<Func<object, object>> expr =
        Expression.Lambda<Func<object, object>>(
            Expression.Convert(
                Expression.Call(
                    Expression.Convert(obj, method.DeclaringType),
                    method),
                typeof(object)),
            obj);

    return expr.Compile();
}
Run Code Online (Sandbox Code Playgroud)

结果非常令人满意,比使用传统方法快30-40倍(PropertyInfo.GetValue (obj, null);)

问题是:我怎样才能创建SetValue一个属性相同的属性?不幸的是没有办法.

我这样做是因为我不能使用方法,<T>因为我的应用程序的结构.

c# reflection expression action setvalue

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

此VB6操作的等效C#语句产生问题

我在VB中有这个代码行:

Dim Sqrt As Double
Sqrt = Radius ^ 2 - (CenterX - X) ^ 2
Run Code Online (Sandbox Code Playgroud)

上面的语句中的参数将传递以下值:

X=  -7.3725025845036161 Double
CenterX =0.0            Double
Radius= 8.0             Double
Run Code Online (Sandbox Code Playgroud)

在执行上述语句时,其值Sqrt如下:

Sqrt    9.646205641487505   Double
Run Code Online (Sandbox Code Playgroud)

现在我用Math类写了一个类似的C#逻辑:

double Sqrt = 0;
Sqrt = Math.Pow(Radius, 2) - Math.Pow((CenterX - X), 2);
Run Code Online (Sandbox Code Playgroud)

使用相同的值集,C#代码中的输出为:

Sqrt    9.6462056414874979  double
Run Code Online (Sandbox Code Playgroud)

我需要帮助,因为C#代码中的这个单一更改,我的所有值都受到影响.我能做些什么来获得与*VB*源类似的价值吗?

c# vb.net vb6 interop backwards-compatibility

21
推荐指数
2
解决办法
1240
查看次数

设置cookie并验证后,User.Identity.IsAuthenticated返回false

我遇到了MVC4用户授权问题.

System.Web.Security.Membership.ValidateUser回报true.
然后它到达FormsAuthentication.SetAuthCookie,我在浏览器中看到一个cookie.
然后由于某种原因User.Identity.IsAuthenticated仍然评估false.
User.Identity.IsAuthenticated重定向后仍然是假的并停留false.

[AllowAnonymous]
[HttpPost]
public ActionResult Login(LoginModel model, string returnUrl)
{
    if (ModelState.IsValid)
    {
        if (System.Web.Security.Membership.ValidateUser(model.UserName, model.Password))
        {
            FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe);
            if (Url.IsLocalUrl(returnUrl))
            {
                return Redirect(returnUrl);
            }
            else
            {
                return RedirectToAction("Index", "Home");
            }
        }
        else
        {
            ModelState.AddModelError("", "The user name or password provided is incorrect.");
        }
    }

    // If we got this far, something failed, redisplay form
    return View(model);
}
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc asp.net-mvc-4

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

从本机dll生成C#DLLImport声明

你知道一个软件从一个本机DLL自动生成C#代码(在.cs中有[DllImport]属性),以便在C#代码中使用这个DLL吗?

c# dll native dllimport

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

DLL加载失败:1%是无效的win32应用程序

import wx

Traceback (most recent call last):
  File "", line 1, in 
    import wx
  File "C:\Python26\lib\site-packages\wx-2.8-msw-unicode\wx\__init__.py", line 45, in 
    from wx._core import *
  File "C:\Python26\lib\site-packages\wx-2.8-msw-unicode\wx\_core.py", line 4, in 
    import _core_
ImportError: DLL load failed: %1 is not a valid Win32 application

我已经尝试了几个wxpython版本的python2.6和python2.7,它们都是这样的.所有的版本都是win64以及我的操作系统,请大家好!

wxpython

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

将blob附加到表单中类型文件的输入

如何将blob附加到类型文件的输入

<!-- Input of type file -->
<input type="file" name="uploadedFile" id="uploadedFile" accept="image/*"><br>
Run Code Online (Sandbox Code Playgroud)
// I am getting image from webcam and converting it to a blob
function takepicture() {
    canvas.width = width;
    canvas.height = height;
    canvas.getContext('2d').drawImage(video, 0, 1, width, height);
    var data = canvas.toDataURL('image/png');
    var dataURL = canvas.toDataURL();
    var blob = dataURItoBlob(dataURL);
    photo.setAttribute('src', data);
}

function dataURItoBlob(dataURI) {
    var binary = atob(dataURI.split(',')[1]);
    var array = [];
    for(var i = 0; i < binary.length; i++) {
        array.push(binary.charCodeAt(i));
        return new Blob([new Uint8Array(array)], {type: …
Run Code Online (Sandbox Code Playgroud)

html javascript jquery

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