Android P2P数据传输Demo

在 Android 应用程序开发中,P2P 数据传输是一种常见的技术,它允许设备直接进行数据交换,而无需通过服务器。在本文中,我们将演示如何创建一个简单的 Android 应用程序,用于在两个设备之间进行 P2P 数据传输。

实现步骤

  1. 创建两个 Android 项目,分别命名为 SenderReceiver
  2. Sender 项目中创建一个 MainActivity 类,用于发送数据。代码示例如下:
public class MainActivity extends AppCompatActivity {

    private static final String ACTION_SEND_DATA = "com.example.p2p.SEND_DATA";

    private BroadcastReceiver receiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            String data = intent.getStringExtra("data");
            // 处理接收到的数据
        }
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        IntentFilter filter = new IntentFilter(ACTION_SEND_DATA);
        registerReceiver(receiver, filter);

        // 发送数据
        Intent intent = new Intent();
        intent.setAction(ACTION_SEND_DATA);
        intent.putExtra("data", "Hello, P2P!");
        sendBroadcast(intent);
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        unregisterReceiver(receiver);
    }
}
  1. Receiver 项目中创建一个 MainActivity 类,用于接收数据。代码示例如下:
public class MainActivity extends AppCompatActivity {

    private BroadcastReceiver receiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            String data = intent.getStringExtra("data");
            // 处理接收到的数据
        }
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        IntentFilter filter = new IntentFilter("com.example.p2p.SEND_DATA");
        registerReceiver(receiver, filter);
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        unregisterReceiver(receiver);
    }
}
  1. AndroidManifest.xml 文件中分别为 SenderReceiver 添加权限和声明。
<!-- Sender -->
<uses-permission android:name="android.permission.INTERNET" />

<receiver android:name=".MainActivity">
    <intent-filter>
        <action android:name="com.example.p2p.SEND_DATA" />
    </intent-filter>
</receiver>

<!-- Receiver -->
<receiver android:name=".MainActivity">
    <intent-filter>
        <action android:name="com.example.p2p.SEND_DATA" />
    </intent-filter>
</receiver>

状态图

stateDiagram
    Sender -->|Sends data| Receiver

关系图

erDiagram
    Sender ||--o{ Receiver

通过以上步骤,我们实现了一个简单的 Android P2P 数据传输应用程序。通过广播机制,Sender 可以向 Receiver 发送数据,实现了设备间的数据传输。在实际开发中,可以根据具体需求对代码进行扩展和优化,实现更复杂的功能。

希望本文对你理解 Android P2P 数据传输有所帮助!如果有任何问题或疑问,欢迎留言讨论。