小编Alp*_*pan的帖子

在切换数据连接时,Android上的XMPP消息丢失(例如,转动Wifi,GSM < - > Wifi切换)

我正在android中开发一个聊天应用程序.使用XMPP服务器.PHP服务器已迁移到ejabber.

我的通知在所有情况下都能正常运行 但在一个案例中,我正在丢失XMPP消息.事实上我没有收到通知.

详细说来,我正在关闭WiFi或数据连接.关闭WiFi或数据连接后,发送给我的任何通知都没有收到.在我打开WiFi或数据连接后,我无法收到发送给我的消息.

我已经在后台实施了服务.这使得xmpp连接永远存在.

我关闭WiFi连接时收到此错误.

java.net.SocketException: sendto failed: EPIPE (Broken pipe)
java.net.SocketException: recvfrom failed: ETIMEDOUT (Connection timed out)
   at libcore.io.IoBridge.maybeThrowAfterSendto(IoBridge.java:506)
   at libcore.io.IoBridge.sendto(IoBridge.java:475)
   at java.net.PlainSocketImpl.write(PlainSocketImpl.java:508)
   at java.net.PlainSocketImpl.access$100(PlainSocketImpl.java:46)
   at java.net.PlainSocketImpl$PlainSocketOutputStream.write(PlainSocketImpl.java:270)
   at java.io.OutputStreamWriter.flushBytes(OutputStreamWriter.java:167)
   at java.io.OutputStreamWriter.flush(OutputStreamWriter.java:158)
   at java.io.BufferedWriter.flush(BufferedWriter.java:124)
   at org.jivesoftware.smack.PacketWriter.writePackets(PacketWriter.java:286)
   at org.jivesoftware.smack.PacketWriter.access$12(PacketWriter.java:270)
   at org.jivesoftware.smack.PacketWriter$1.run(PacketWriter.java:137)
Caused by: libcore.io.ErrnoException: sendto failed: EPIPE (Broken pipe)
   at libcore.io.Posix.sendtoBytes(Native Method)
   at libcore.io.Posix.sendto(Posix.java:146)
   at libcore.io.BlockGuardOs.sendto(BlockGuardOs.java:177)
   at libcore.io.IoBridge.sendto(IoBridge.java:473)
   ... 9 more
   at libcore.io.IoBridge.maybeThrowAfterRecvfrom(IoBridge.java:552)
   at libcore.io.IoBridge.recvfrom(IoBridge.java:516)
   at java.net.PlainSocketImpl.read(PlainSocketImpl.java:489)
   at java.net.PlainSocketImpl.access$000(PlainSocketImpl.java:46)
   at java.net.PlainSocketImpl$PlainSocketInputStream.read(PlainSocketImpl.java:241)
   at java.io.InputStreamReader.read(InputStreamReader.java:244)
   at java.io.BufferedReader.read(BufferedReader.java:310)
   at org.jivesoftware.smack.XMPPConnection$AliveReader.read(XMPPConnection.java:1122)
   at org.kxml2.io.KXmlParser.fillBuffer(KXmlParser.java:1496)
   at …
Run Code Online (Sandbox Code Playgroud)

android xmpp smack asmack

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

虽然制作标志APK的谷歌地图(无法加载地图无法联系谷歌服务器)这个错误确实

在我的应用程序中,我将实现Google Maps示例

然而:

  1. 当我直接运行应用程序时,地图将完美运行
  2. 虽然我可以制作标志apk(制作密钥存储文件并与密钥存储Apk相关)然后地图将无法正常工作

对于这个问题,我尝试了很多想法

  1. 创建我的应用程序的另一个和另一个与包相关的API KEY
  2. 在Android Manifest文件中添加额外的权限(下面给出了最新的Manifest权限)

有人可以帮忙吗?

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".CountryRequirement" >

<fragment
    android:id="@+id/map"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    class="com.google.android.gms.maps.MapFragment" />

</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

我的XML布局包含此内容
我提供了Google Maps示例中所需的所有权限

我的清单文件:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="org.Infoware.GuideBook3"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="14" />

    <permission
        android:name="org.Infoware.GuideBook3.permission.MAPS_RECEIVE"
        android:protectionLevel="signature" />

    <uses-permission android:name="org.Infoware.GuideBook3.permission.MAPS_RECEIVE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/icon_72"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <uses-library android:name="com.google.android.maps" />

        <activity
            android:name="org.Infoware.GuideBook3.GuideBook3"
            android:label="@string/app_name" > …
Run Code Online (Sandbox Code Playgroud)

android google-maps google-maps-api-2

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

标签 统计

android ×2

asmack ×1

google-maps ×1

google-maps-api-2 ×1

smack ×1

xmpp ×1