我正在使用asmack开发Android的聊天应用程序.连接已经建立,我也可以登录.我添加了IQ数据包的监听器,这工作正常.我也为Presence数据包添加了监听器,这是我的代码:
PacketTypeFilter presenceFilter=new PacketTypeFilter(Presence.class);
connection.addPacketListener(new PacketListener() {
public void processPacket(Packet packet) {
Presence presence = (Presence)packet;
Log.d("test1","Presence packet came :From:"+presence.getFrom()+",Packet ID:"+presence.getPacketID()+",Priority:"+presence.getPriority()+",To:"+presence.getTo()
+",Exn:"+presence.toXML());
if (presence.getType() == Presence.Type.available) {
Log.d("test1","User available");
}
else if (presence.getType() == Presence.Type.unavailable) {
Log.d("test1","User not available");
}
}
}, presenceFilter);
Run Code Online (Sandbox Code Playgroud)
我的问题是,这个监听器永远不会被调用任何传入的Presence数据包.它适用于外向的.我无法使用Roster来处理状态,因为我们的服务器正在使用一些智能路由服务来处理用户可用性.我在这里做错了吗?任何输入都会有所帮助.
我正面临有关Phonegap Capture图像功能的问题.虽然此问题曾多次被问过,但我没有找到解决办法.所以我再次问这里.我正在尝试捕获图像并使用phonegap在我的HTML页面中设置它.这是我的代码:
function captureImage() {
navigator.device.capture.captureImage(captureSuccess, captureError, {limit: 1,
quality:100,
correctOrientation: true,
destinationType : Camera.DestinationType.FILE_URI,
targetWidth: 800,
targetHeight: 800,
saveToPhotoAlbum: true });
}
function captureSuccess(mediaFiles) {
var i, len;
for (i = 0, len = mediaFiles.length; i < len; i += 1) {
uploadFile(mediaFiles[i]);
}
}
function captureError(error) {
var msg = 'An error occurred during capture: ' + error.code;
$("#errorNot1").fadeIn();
$("#errorMsg").text("Unable to capture image.");
}
function uploadFile(mediaFile) {
$(".contentdiv").css("display","none");
$("#takePhoto").css("display","block");
$("#fromLib").css("display","none");
path = mediaFile.fullPath,
name = mediaFile.name;
$('.largeImage').attr("src",path);
} …
Run Code Online (Sandbox Code Playgroud) 我正在使用 EmberJs 开发 Cordova 应用程序。我需要本地 ajax 调用,即 ajax 调用 file:/// url。科尔多瓦不允许这样做。所以我发现我需要修改Cordova WebView设置。为此,我尝试了这段代码:
\n\nimport android.os.Build;\nimport android.os.Bundle;\nimport org.apache.cordova.*;\nimport org.apache.cordova.engine.SystemWebView;\nimport android.webkit.WebSettings;\n\npublic class MainActivity extends CordovaActivity\n{\n SystemWebView webView = null;\n\n @Override\n public void onCreate(Bundle savedInstanceState)\n {\n super.onCreate(savedInstanceState);\n // Set by <content src="index.html" /> in config.xml\n webView = (SystemWebView) appView.getView();\n WebSettings settings = webView.getSettings();\n if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {\n settings.setAllowFileAccessFromFileURLs(true);\n settings.setAllowUniversalAccessFromFileURLs(true);\n }\n loadUrl(launchUrl);\n }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n但我总是收到以下错误:
\n\nRuntime: FATAL EXCEPTION: main\njava.lang.RuntimeException: Unable to start activity ComponentInfo{com.scb.prototype/com.scb.prototype.MainActivity}: java.lang.NullPointerException: Attempt to invoke interface method \'android.view.View org.apache.cordova.CordovaWebView.getView()\' …
Run Code Online (Sandbox Code Playgroud)