Android P2P数据传输Demo
在 Android 应用程序开发中,P2P 数据传输是一种常见的技术,它允许设备直接进行数据交换,而无需通过服务器。在本文中,我们将演示如何创建一个简单的 Android 应用程序,用于在两个设备之间进行 P2P 数据传输。
实现步骤
- 创建两个 Android 项目,分别命名为
Sender
和Receiver
。 - 在
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);
}
}
- 在
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);
}
}
- 在
AndroidManifest.xml
文件中分别为Sender
和Receiver
添加权限和声明。
<!-- 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 数据传输有所帮助!如果有任何问题或疑问,欢迎留言讨论。