Android App到App Communication

时间:2014-09-05 11:01:13

标签: android ios iphone android-intent google-cloud-messaging

我是android初学者。请给我一些建议,我将遵循哪个程序开发应用程序,如:

例如:如何在App与App之间进行通信? 例如我想将图片或任何其他数据发送到另一台设备或应用程序,请帮我解决这个问题。

谢谢

switch (intent.getIntExtra(Constants.EXTENDED_DATA_STATUS,
                Constants.STATE_ACTION_COMPLETE)) {

在不使用推送通知的情况下,应用程序可以进行应用程序通信吗? 我想将图像从一个应用程序发送到另一个应用程序,一些建议和建议将非常感谢。谢谢

2 个答案:

答案 0 :(得分:1)

在设备之间共享数据其中一种方式是Wi-Fi Direct。这里是演示source code的链接,文档位于This链接。希望它会有所帮助。

答案 1 :(得分:0)

设备上的应用程序之间的通信与设备之间的通信非常不同。

在设备中,您可以使用Intents在应用之间进行通信。

// send text
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, "This is my text to send.");
sendIntent.setType("text/plain");
startActivity(sendIntent);

// send binary data
Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.putExtra(Intent.EXTRA_STREAM, uriToImage);
shareIntent.setType("image/jpeg");
startActivity(Intent.createChooser(shareIntent, getResources().getText(R.string.send_to)));

如果您想在网络上的设备之间共享,那么使用某种TCP / IP或UDP协议可能会有效,但通常我发现蓝牙是最简单的解决方案。两个应用程序都需要了解通信,但它足够直接。

这里有一篇好文章:http://java.dzone.com/articles/bluetooth-data-transfer

基本上,你要点:

  1. 查找其他设备
  2. 与其他设备配对
  3. 发送文件
  4. 示例代码如下所示:

    import android.bluetooth.BluetoothAdapter;
    // duration that the device is discoverable
    private static final int DISCOVER_DURATION = 300;
    
    // our request code (must be greater than zero)
    private static final int REQUEST_BLU = 1;
    //...
    public void enableBlu(){
    // enable device discovery - this will automatically enable Bluetooth
    Intent discoveryIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
    
    discoveryIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION,
                                DISCOVER_DURATION );
    
    startActivityForResult(discoveryIntent, REQUEST_BLU);
    }
    

    然后接收:

    // When startActivityForResult completes...
    protected void onActivityResult (int requestCode,
                                     int resultCode,
                                     Intent data) {
    
      if (resultCode == DISCOVER_DURATION
           && requestCode == REQUEST_BLU) {
          // processing code goes here
      }
      else{ // cancelled or error
        Toast.makeText(this, R.string.blu_cancelled,
                       Toast.LENGTH_SHORT).show();
      }
    }
    

    如果需要,您也可以使用自己的蓝牙意图而不是操作系统。您可以从AOSP代码获取蓝牙意图的来源。