将数据从一个xamarin.android应用程序发送到另一个xamarin.forms应用程序

时间:2018-03-12 18:16:23

标签: android xamarin xamarin.forms

有没有办法将数据从一个xamarin.forms应用程序发送到另一个xamarin.forms应用程序。 Android应用程序的目标仅适用于android,而其他应用程序是android和ios。 android应用程序必须在本地向android application / ios发送数据,但android应用程序正在接收它。在我的aplication android我无法打开另一个应用程序并发送数据。但我不能在我的申请中收到数据。这是android aplication中的代码:

 Intent intent = new Intent(Intent.ACTION_MAIN);
        intent.setComponent(new ComponentName("com.companyname.Opiniao","android.intent.action.B"));
        intent.putExtra(Intent.EXTRA_TEXT, editTextEmail.getText() + "\n " + editTextPassword.getText());
        intent.setType("text/plain");
        startActivity(intent);

1 个答案:

答案 0 :(得分:3)

我已经能够解决问题了。

在我的Android应用程序中,我使用此代码:

    void enviar(){
    // Usa o nome do package que nos queremos encontrar
    boolean isAppInstalled = appInstalledOrNot("com.companyname.Opiniao");

    if(isAppInstalled) {
       Intent intent = new Intent(Intent.ACTION_MAIN);
       intent.setComponent(new ComponentName("com.companyname.Opiniao","android.intent.action.B"));
        intent.putExtra("Dados", editTextEmail.getText() + "\n" + editTextPassword.getText());
        startActivity(intent);


    } else {
        String url = "http://www.google.com";
        Intent i = new Intent(Intent.ACTION_VIEW);
        i.setData(Uri.parse(url));
        startActivity(i);
    }
}

//Procura o package, se tiver instalado, envia um true, se não encontrar devolve um false
private boolean appInstalledOrNot(String uri) {
    PackageManager pm = getPackageManager();
    try {
        pm.getPackageInfo(uri, PackageManager.GET_ACTIVITIES);
        return true;
    } catch (PackageManager.NameNotFoundException e) {
        return false;
    }
}

在我的xamarin.forms中,在android mainActivity中,我把它放在:

        async void Receber()
    {
        text = Intent.GetStringExtra("Dados");
        string dados = "Dados";
        bool result;
        result = await dados.WriteTextAllAsync(text);
     }