如何在两个设备(android,iphone)之间传输“数据”?

2024-03-06

如何在两个设备之间传输数据?我想在不同平台(android,iphone)之间传输数据(主要是图像文件)。是否可以使用 p2p 或者我应该使用客户端服务器?

任何帮助将不胜感激。


你看过吗高通的 AllJoyn 库 https://developer.qualcomm.com/mobile-development/mobile-technologies/peer-peer-alljoyn?它只能通过蓝牙或 WiFi 工作。

下面的代码是从这里复制的将套接字编程合并到您的应用程序中 http://thinkandroid.wordpress.com/2010/03/27/incorporating-socket-programming-into-your-applications/

public class ServerActivity extends Activity {

    private TextView serverStatus;

    // default ip
    public static String SERVERIP = "10.0.2.15";

    // designate a port
    public static final int SERVERPORT = 8080;

    private Handler handler = new Handler();

    private ServerSocket serverSocket;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.server);
        serverStatus = (TextView) findViewById(R.id.server_status);

        SERVERIP = getLocalIpAddress();

        Thread fst = new Thread(new ServerThread());
        fst.start();
    }

    public class ServerThread implements Runnable {

        public void run() {
            try {
                if (SERVERIP != null) {
                    handler.post(new Runnable() {
                        @Override
                        public void run() {
                            serverStatus.setText("Listening on IP: " + SERVERIP);
                        }
                    });
                    serverSocket = new ServerSocket(SERVERPORT);
                    while (true) {
                        // listen for incoming clients
                        Socket client = serverSocket.accept();
                        handler.post(new Runnable() {
                            @Override
                            public void run() {
                                serverStatus.setText("Connected.");
                            }
                        });

                        try {
                            BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));
                            String line = null;
                            while ((line = in.readLine()) != null) {
                                Log.d("ServerActivity", line);
                                handler.post(new Runnable() {
                                    @Override
                                    public void run() {
                                        // do whatever you want to the front end
                                        // this is where you can be creative
                                    }
                                });
                            }
                            break;
                        } catch (Exception e) {
                            handler.post(new Runnable() {
                                @Override
                                public void run() {
                                    serverStatus.setText("Oops. Connection interrupted. Please reconnect your phones.");
                                }
                            });
                            e.printStackTrace();
                        }
                    }
                } else {
                    handler.post(new Runnable() {
                        @Override
                        public void run() {
                            serverStatus.setText("Couldn't detect internet connection.");
                        }
                    });
                }
            } catch (Exception e) {
                handler.post(new Runnable() {
                    @Override
                    public void run() {
                        serverStatus.setText("Error");
                    }
                });
                e.printStackTrace();
            }
        }
    }

    // gets the ip address of your phone's network
    private String getLocalIpAddress() {
        try {
            for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) {
                NetworkInterface intf = en.nextElement();
                for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();) {
                    InetAddress inetAddress = enumIpAddr.nextElement();
                    if (!inetAddress.isLoopbackAddress()) { return inetAddress.getHostAddress().toString(); }
                }
            }
        } catch (SocketException ex) {
            Log.e("ServerActivity", ex.toString());
        }
        return null;
    }

    @Override
    protected void onStop() {
        super.onStop();
        try {
             // make sure you close the socket upon exiting
             serverSocket.close();
         } catch (IOException e) {
             e.printStackTrace();
         }
    }

}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在两个设备(android,iphone)之间传输“数据”? 的相关文章

  • 使用Picasso从url保存图像?

    我正在尝试使用 API Picasso 保存图像 为了做到这一点 我正在尝试使用Target保存 但我无法完成这项工作 我怎么能这样做呢 Trying save image public static void imageDownload
  • 从 AF.Request 响应获取数据

    我需要使用 Alamofire 的 Post 请求调用的 json 响应中的数据 但由于某种原因我无法访问该数据 我尝试按照 Alamofire github 文档以及这篇文章进行操作从 AF 响应 JSON 获取数据 https stac
  • 有人可以给出一个 android 中 webview 实现的确切例子吗

    嗨 我正在使用开发 Android 应用程序WebView执行 我跟着官方安卓教程 http developer android com resources tutorials views hello webview html 在 Ecli
  • 无法在 Android 上编译 avahi

    我是交叉编译的新手 我被分配了使用android补丁的任务http avahi org ticket 354 http avahi org ticket 354将 avahi 核心编译为 android ndk build avahi co
  • 如何在其他呼叫运行时以编程方式合并呼叫(电话会议)

    我的要求是这样的 假设我当时正在拨打一个号码 并且我想以编程方式拨打另一个号码 到目前为止 我所做的是 当某些呼叫已经进行时 我能够呼叫特定号码 例如 假设我正在拨打号码 123 1 分钟后 通过使用Alarm Manger我触发一个事件来
  • 在没有 BluetoothManagerCallback 的情况下调用 getBluetoothService

    我正进入 状态getBluetoothService called with no BluetoothManagerCallback在我的 Android 应用程序中经常出现错误 我不知道是什么原因导致这个或任何有关蓝牙管理器回调的事情 谁
  • 如何在 Android Studio 中构建项目测试目录?

    目前还没有这方面的约定 但是现在我如何构建 Android Studio 的测试目录呢 Android 测试基础 http developer android com tools testing testing android html页面
  • NSPredicate 使用 RLMResults 作为参数

    我试图通过使用 NSPredicate 进行过滤来获取两组 Realm 数据 并且是不同的对象 之间的差异 但存在一个我无法理解的错误 我的代码 RLMResults topStories KFXTopStory allObjects NS
  • Android WebView文件上传

    我正在开发一个 Android 应用程序 基本上它是一个WebView和一个进度条 Facebook 的移动网站 m facebook com 已加载到WebView 当我单击 选择文件 按钮上传图像时 没有任何反应 我已经尝试了所有的解决
  • 如何相对于包含视图大小定位子视图?

    我希望能够将我的子视图从顶部定位到超级视图大小的 25 NSLayoutConstraint topPositionConstraint NSLayoutConstraint constraintWithItem containerView
  • 当 Firebase 函数以 Swift 结束时

    我在我的应用程序中使用 Firebase 它查询大量用户并获取所需的特定数据 但是当它开始查询时 其余功能也继续运行 而不仅仅是查询 所以我无法理解当它结束时 例如在这段代码中 ref observeEventType ChildAdded
  • ios - 使用 SIGPIPE 和 SIG_IGN 的信号函数

    我加入了一个旧项目 我发现了这条线 BOOL application UIApplication application didFinishLaunchingWithOptions NSDictionary launchOptions si
  • Android 解析 JSON 卡在 get 任务上

    我正在尝试解析一些 JSON 数据 我的代码工作了一段时间 我不确定我改变了什么突然破坏了代码 当我运行代码时 我没有收到任何运行时错误或警告 我创建一个新的 AsyncTask 并执行它 当我打电话时 get 在这个新任务中 调试器在此行
  • Android OptionsMenu问题,背景始终透明

    我的选项菜单总是不显示背景 背景是透明的 有谁知道如何摆脱这个 我的失败起源活动是从另一个自定义活动扩展的 我在 eclipse 上有这个项目 选项菜单工作正常 但自从我迁移到 AndroidStudio 后 选项菜单始终是透明的 我尝试更
  • 使用排序函数按 NSDates 对数组进行排序[重复]

    这个问题在这里已经有答案了 我有一个名为的模型类Event import Foundation import MapKit public class Event let id Int var title String let status
  • Android Jetpack Compose 尺寸随持续时间变化的动画

    如何在 Jetpack Compose 中添加内容大小更改动画的持续时间 尝试使用Modifier animateContentSize 并通过动画规格具有持续时间 但它只是突然进入或退出 没有观察到持续时间 Column Modifier
  • android 中的 java.net.URL ..新手问题

    我是java新手 正在尝试android开发 以下代码生成 malformedURLException 有人可以帮助我识别异常吗 任何提示都会非常有帮助 package com example helloandroid import and
  • Android Studio 中自动打开“运行设备”选项卡

    在 Android Studio Flamingo 中有一个名为跑步设备并且它会在每次之后自动打开运行应用程序 有办法禁止这个自动打开吗 我尝试禁用启用物理 Android 设备的镜像选项 但选项卡仍然自动打开 基于此issue https
  • Android - 如何简单地拖放按钮?

    我在这里找到了一个适合初学者的教程 http androidrox wordpress com 2011 05 13 android sample app drag and drop image using touch http andro
  • UITableViewController 无法识别的选择器发送到实例

    当我传递一个整数时 我有一个 tableviewcontroller 和一个detailtableviewcontroller UITableViewController setSurveyNumber 无法识别的选择器发送到实例 Biza

随机推荐

  • 程序集(x86)循环分段错误[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我已经声明
  • django.test.TestCase 与 unittest 与 django.utils.unittest.TestCase 之间的区别

    我仍在使用 Django 1 2 1 我认为使用较新的 Django 我们不会import unittest然后做unittest TestCase 插图 import unittest class TestThis unittest Te
  • 如何将 JSON 字符串转换为具有不同结构的 JSON 字符串

    我正在构建一个应用程序 其中数据以 JSON 字符串的形式从第三方系统检索 我需要将此 JSON 字符串转换为另一个具有不同结构的 JSON 字符串 以便它可以与内部 Javascript 库中定义的预先存在的函数一起使用 理想情况下 我希
  • ReactJS 中没有“Access-Control-Allow-Origin”

    我想知道如何在reactJS或react native环境中的axios post方法中设置Access Control Allow Origin 我使用 CORS 附加组件 它可以工作 但我也想在标头中设置它 我尝试了这些方法 但没有一个
  • 使用 Yeoman 生成器重复提示

    我正在创建一个 Yeoman Generator 来自动创建一些数据库表 我需要向用户提示添加多个列 下面的 ColumnName 和 DataType 的组合 我的磁盘中保存了一个模板 我在其中绑定用户输入的动态名称 并根据该模板 由 Y
  • OpenGL ES纹理问题,4个重复的列和水平线(Android)

    我有一个 RGB 或 RGBA 纹理图像缓冲区 我想使用以下代码将其显示在我的 Android 设备上 我使用 NDK 中的 OpenGL glTexImage2D GL TEXTURE 2D 0 GL RGBA 256 256 0 GL
  • C# MVVM 服务层位于何处?

    我正在尝试开发一个小程序 它将与串行端口上的设备进行通信 该程序将负责格式化用户输入的数据并读取和呈现设备接收到的值 我对 WPF 和 MVVM 还很陌生 并且已经对整个数据绑定 XAML 混乱有了基本的了解 我认为 目前我的理解是这样的
  • 如何将 git 补丁从一个存储库应用到另一个存储库?

    我有两个存储库 一个是库的主存储库 另一个是使用该库的项目 如果我对从属项目中进行修复 我想要一种简单的方法来将该补丁应用回上游 该文件在每个存储库中的位置都不同 主要仓库 www playdar org static playdar js
  • 如何在包装 Firebug(或类似)控制台 api 时访问行号

    我封装了控制台 API 以提供精细的日志记录级别以及一些其他糖功能 这工作正常 唯一的问题是 firebug 或任何其他控制台 将始终将日志来自的行号报告为调用控制台 API 本身的行 您建议我如何让控制台记录我调用包装函数的行号 我更喜欢
  • 修改函数中的对象时出现意外结果

    当我修改函数中的对象时 我得到了一个奇怪的结果 有趣的是 当我在浏览器控制台中执行相同的操作时 我得到了我所期望的结果 但在反应中它似乎不起作用这是代码 const makeChanges i gt i foo test i new i a
  • 为 UIView 子类加载 Nib 的正确方法

    我知道这个问题以前曾被问过 但答案是矛盾的 我很困惑 所以请不要攻击我 我想要一个可重复使用的UIView整个我的应用程序的子类 我想使用 nib 文件来描述界面 现在假设它是一个加载指示器视图 其中有一个活动指示器 我希望在某些事件中实例
  • GCD和回调-并发问题

    我注册了一个回调处理程序 用于侦听 iOS 地址簿中的更改 由于某些奇怪的原因 已提交错误 当应用程序从后台返回时 有时会多次调用此回调 我希望我的回调处理程序只运行一次逻辑 即使回调被多次调用 这就是我注册回调的方式 ABAddressB
  • 在经典 ASP 中使用 ODBC 连接器时,MySQL“max_execution_time”默认为 30000ms,并且无法更改

    这个问题已经困扰我几个月了 而且我还没有找到解决方案 默认max execution time在经典 ASP 应用程序中使用 MySQL ODBC 连接器 8 0 时 设置为 30000 毫秒 30 秒 但我不知道如何增加它 我有一个大表
  • 如何获取 Twitter 当前用户的性别

    我已经查看了 Twitter 文档 anywhere 我可以在其中使用用户对象属性 但在用户数据中我找不到性别属性 当您创建 Twitter 帐户时 它从不询问性别 因此您无法通过 API 获取性别 你需要某种人工智能来确定它
  • 将 Fig.legend 与 matplotlib 中的子图结合起来

    免责声明 我知道在这个简单的示例中使用子图是无关紧要的 后者仅用于显示我的问题 我希望能够使用fig legend with fig subfigures1 我目前正在探索新的子图 https matplotlib org stable g
  • Android如何通过复选框识别列表视图中的项目

    我真的被困在这里了 我想要的并不简单 对我来说 但是我已经编写 Android 一年了 我想要的是一个列表视图 每行都有一个图像视图 一个文本视图 一个复选框和另一个文本视图 让我们首先在布局中添加一个文本视图和一个复选框 基于this h
  • 如何包含 Angular 5 的 ag-grid 样式?

    我正在使用 Angular 5 和 ag grid 17 x 我只是尝试做一个简单的 hello world 类型的示例 但无法正确显示网格 我的模板中有以下 HTML div style width 100 height 500px cl
  • WebClient().DownloadString() 返回旧数据[重复]

    这个问题在这里已经有答案了 我正在使用此代码从 URL 获取返回字符串 webClient Encoding Encoding UTF8 response webClient DownloadString http somesite com
  • 如何删除 Grails 生成的 Content-Type 标头中的 charset=utf-8

    我正在尝试将 json 数据作为 grails 中的响应正文发送 我尝试使用以下方法将 Content Type 标头设置为 application json render status httpServletResponse text r
  • 如何在两个设备(android,iphone)之间传输“数据”?

    如何在两个设备之间传输数据 我想在不同平台 android iphone 之间传输数据 主要是图像文件 是否可以使用 p2p 或者我应该使用客户端服务器 任何帮助将不胜感激 你看过吗高通的 AllJoyn 库 https developer