小编Pau*_*sma的帖子

检查是否启用了Firefox 3.5加载项

为了告知用户可能存在的冲突,我想让我的附加组件检查是否已安装并启用了另一个加载项.如果是这样,我可以在用户的​​遗赠中禁用它或我自己:

function disableExtension(id) {
    var man = Components.classes["@mozilla.org/extensions/manager;1"];
    if (man) {
        man = man.getService(Components.interfaces.nsIExtensionManager);
    }
    if (man) {
        man.disableItem(id);
    } else {
        Components.utils.import("resource://gre/modules/AddonManager.jsm");
        AddonManager.getAddonByID(id, function(addon) {
            addon.userDisabled = true;
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

但我首先要检查是否安装了某个其他附加组件.目前,我这样做如下:

if (Application.extensions) {
    // Gecko 1.9.2 and older
    ext = Application.extensions.get(id);
    if (ext) {
        // TODO check if extension is also enabled
        disableExtension(id);
    }
} else {
    // Gecko 2.0.0 and newer
    Application.getExtensions(function(extensions) {
        ext = extensions.get(id);
        Components.utils.import("resource://gre/modules/AddonManager.jsm");
        AddonManager.getAddonByID(id, function(addon) {
            if (!addon.userDisabled) {
                disableExtension(id); …
Run Code Online (Sandbox Code Playgroud)

javascript firefox xpcom firefox-addon

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

检查记录是否存在

在php.net上发现了这个以检查文件是否存在.

我想首先检查记录是否存在,然后进行更新,否则进行插入.

if(record exist) {
   update query}
else 
  { insert query}
Run Code Online (Sandbox Code Playgroud)

我知道如何更新或插入,但不知道如何检查记录是否存在.怎么做?

php

11
推荐指数
4
解决办法
5万
查看次数

拖放不适用于Mac

我试图将文件从Finder拖到我的SWT应用程序中.在Windows和Ubuntu上,以下代码可以工作:

public class DndTest {

    public static void main(final String[] args) {
        final Display display = new Display();
        final Shell shell = new Shell(display, SWT.DIALOG_TRIM);
        shell.setText("Drag & drop test");
        shell.setSize(200, 200);
        final FormLayout layout = new FormLayout();
        shell.setLayout(layout);
        final Label lbl = new Label(shell, SWT.NORMAL);
        lbl.setAlignment(SWT.CENTER);
        lbl.setText("Drop files here");
        final FormData layoutData = new FormData();
        layoutData.left = new FormAttachment(50, -100);
        layoutData.top = new FormAttachment(50, -15);
        layoutData.right = new FormAttachment(50, 100);
        layoutData.bottom = new FormAttachment(50, 15);
        lbl.setLayoutData(layoutData);

        final DropTarget dt = …
Run Code Online (Sandbox Code Playgroud)

java swt drag-and-drop

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

在Eclipse中更改显示的Android设备名称

将多个Android设备连接到我的开发机器时,很快就很难确定哪个设备来自Eclipse,因为设备名称似乎表示为其序列号.

例如,设备列表: 在此输入图像描述

有没有办法显示手机型号或更改设备名称?

eclipse android device

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

内联注释会产生语法错误

我很喜欢ADT rev 17的新Lint API检查,但新的API正确性检查让我感到难过.我有以下代码行:

listView.setOverScrollMode(OVER_SCROLL_NEVER);
Run Code Online (Sandbox Code Playgroud)

Lint报道了这一行:

呼叫需要API级别9(当前最小值为4)

根据文档,我应该能够在行上方添加注释,如下所示:

@TargetApi(9)
listView.setOverScrollMode(OVER_SCROLL_NEVER);
Run Code Online (Sandbox Code Playgroud)

但是,这会在Java 1.6中出现语法错误:

令牌上的语法错误,错放的构造(s)

android android-lint

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

从Ormlite读取日期时的时区问题

我发现在更改设备的时区时,通过Ormlite读取的日期无法正确返回.

例如,当从阿姆斯特丹时间切换到伦敦时间时,日期应该向前移动一小时.但是,从数据库中读取日期时,它会返回相同的时间,但现在在伦敦时区.

我存储我的字段如下:

@DatabaseField(canBeNull = true)
private Date registration;
Run Code Online (Sandbox Code Playgroud)

android ormlite

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

保护VpnService中的套接字

我正在探索Android的VpnService的功能.目前,我通过在用户空间重建IP堆栈构建了一个非常基本的请求转发器:我从VpnService的输入流中读取IP数据包,解析它们,对于我不想转发的连接,我尝试重新创建那些VPN连接外部的套接字连接.

我已经明白最后一点是通过VpnService.protect()以下方式实现的:

Socket socket = new Socket();
vpnService.protect(socket);
socket.connect(new InetSocketAddress(
        header.getDestinationAddress(),  // From my IP datagram header
        body.getDestinationPort()));     // From the TCP datagram header
Run Code Online (Sandbox Code Playgroud)

不幸的是,这种方法导致VPN接口的环回.

虽然上面的代码只是阻塞并最终超时,但我通过Socket.connect(InetSocketAddress)从一个单独的线程调用来观察环回; 连接直接返回到我的VpnService的输入流,并重复该过程.

不用说,这会导致循环.我觉得这样做的原因是在创建套接字时(以及随后的调用VpnService.protect(Socket)),我还没有设置目标IP和端口.

这似乎确实如此,因为通过覆盖VpnService.protect(Socket)VpnService.protect(int)我的VpnService实现并在两种情况下调用超级都返回false.

如何正确保护套接字连接?

sockets vpn android packet-capture android-4.0-ice-cream-sandwich

11
推荐指数
2
解决办法
8413
查看次数

非常简单的应用程序因Eclipse中的"多目标模式"而失败

由于我更习惯使用Eclipse,我想我会尝试从Visual Studio转换我的项目.昨天我尝试了一个非常简单的小测试.无论我尝试什么,都make失败了"多目标模式".(这类似于这个悬而未决的问题.)

我有三个文件:

Application.cpp:

using namespace std;

#include "Window.h"

int main() {
    Window *win = new Window();
    delete &win;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

在window.h:

#ifndef WINDOW_H_
#define WINDOW_H_

class Window {
public:
    Window();
    ~Window();
};

#endif
Run Code Online (Sandbox Code Playgroud)

Window.cpp:

#include <cv.h>
#include <highgui.h>

#include "Window.h"

const char* WINDOW_NAME = "MyApp";

Window::Window() {
    cvNamedWindow(WINDOW_NAME, CV_WINDOW_AUTOSIZE);
    cvResizeWindow(WINDOW_NAME, 200, 200);
    cvMoveWindow(WINDOW_NAME, 0, 0);
    int key = 0;
    while (true) {
        key = cvWaitKey(0);
        if (key==27 || cvGetWindowHandle(WINDOW_NAME)==0) {
            break;
        }
    }
} …
Run Code Online (Sandbox Code Playgroud)

c++ eclipse gcc cygwin makefile

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

c#中set和set all之间的差异

当我在程序中使用setall时:

BitArray bb = new BitArray(8) ;
bb.SetAll( true);

int[] dd = new int[1];           

bb.CopyTo(dd, 0);

for (int i = 0; i < dd.Length; i++)
    Console.WriteLine(dd[i]);

// result is  -1
Run Code Online (Sandbox Code Playgroud)

但如果我为bitarray的每个元素使用set

BitArray bb = new BitArray(8) ;
bb.Set( 0,true);
bb.Set(1, true);
bb.Set(2, true);
bb.Set(3, true);
bb.Set(4, true);
bb.Set(5, true);
bb.Set(6, true);
bb.Set(7, true);

int[] dd = new int[1];           

bb.CopyTo(dd, 0);         

for ( int i = 0; i < dd.Length; i++)
    Console.WriteLine(dd[i]);

// result is 255
Run Code Online (Sandbox Code Playgroud)

当使用设置结果为-1并且在第二个程序结果中使用setall为255时,为什么两个程序中的不同结果?

c# asp.net arrays bit

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

在Android 4.4.2上以编程方式切换移动数据

我一直使用此代码以编程方式启用移动数据:

ConnectivityManager conman = (ConnectivityManager) context.getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);
@SuppressWarnings("rawtypes")
final Class conmanClass = Class.forName(conman.getClass().getName());
final Field iConnectivityManagerField = conmanClass.getDeclaredField("mService");
iConnectivityManagerField.setAccessible(true);
final Object iConnectivityManager = iConnectivityManagerField.get(conman);
@SuppressWarnings("rawtypes")
final Class iConnectivityManagerClass = Class.forName(iConnectivityManager.getClass().getName());
@SuppressWarnings("unchecked")
final Method setMobileDataEnabledMethod = iConnectivityManagerClass.getDeclaredMethod("setMobileDataEnabled", Boolean.TYPE);
setMobileDataEnabledMethod.setAccessible(true);
setMobileDataEnabledMethod.invoke(iConnectivityManager, true);
Run Code Online (Sandbox Code Playgroud)

这很好用,除了现在Android 4.4.2,我得到这个例外:

java.lang.NoSuchMethodException: setMobileDataEnabled [boolean]
    at  java.lang.Class.getConstructorOrMethod(Class.java:472)
    at java.lang.Class.getDeclaredMethod(Class.java:640)
    at com.test.auto3gPro.ClasseConnessione.settaConnessione(ClasseConnessione.java:48)
    at com.test.auto3gPro.receiver.ScreenBroadcastReceiver.onReceive(ScreenBroadcastReceiver.java:108)
    at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:768)
    at android.os.Handler.handleCallback(Handler.java:733)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at android.os.Looper.loop(Looper.java:136)
    at android.app.ActivityThread.main(ActivityThread.java:5081)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:515)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:781)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
    at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)

有谁知道如何解决这一问题?

android android-4.4-kitkat

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