|
FOROS PROFESIONALES WINDEV, WEBDEV y WINDEV Mobile |
| | | | | |
Iniciado por Mirte, 15,mar. 2018 14:23 - 6 respuestas |
| |
| | | |
|
| |
Publicado el 15,marzo 2018 - 14:23 |
Hello
I'm trying to communicate with an app via intents. The app is self made and in Android studio we've managed to get this code working:
Intent myIntent = new Intent(); myIntent.setClassName("xx.xxxx.xxx", "xx.xxx.xxx.MainActivity"); if (myIntent.resolveActivity(getPackageManager()) != null) { startActivityForResult(myIntent, 1); } @Override public void onActivityResult(int reqCode, int resCode, Intent data) { switch (reqCode) { case (1): { if (resCode == Activity.RESULT_OK) { if (data != null) { String rs = data.getStringExtra("txt"); } } break; } } }
How can I get this code to work in Windev? The Java compiler gives these errors
cannot find symbol if (myIntent.resolveActivity(getPackageManager()) != null) ^ symbol: method getPackageManager()
cannot find symbol startActivityForResult(myIntent, 1); ^ symbol: method startActivityForResult(Intent,int)
Any help would be very much appreciated! |
| |
| |
| | | |
|
| | |
| |
Publicado el 16,marzo 2018 - 13:06 |
Hi Mirte,
Basicallyn, this means that you need to reference some packages/classes in your windev mobile project...
You'll find a basic explanation and I hope a starting point in my article here:
http://fabriceharari.com/UK/Page_Article.awp…
This should let you find out what packages or classes you need to reference, and if it's classes we are talking about, the help says :
The Java classes used in the native Java code must be specified in the wizard for generating the Android application:
"Integrating libraries" step for the classes included in ".jar" or ".aar" libraries. "Integrating Maven dependencies" step for the Maven dependencies. Note: The test of these classes cannot be run in GO mode. The application must be generated and started.
Hope this helps, best regards
-- Fabrice Harari International WinDev, WebDev and WinDev mobile Consulting
Ready for you: WXShowroom.com, WXReplication (open source) and now WXEDM (open source)
More information on http://www.fabriceharari.com |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 7 mensajes |
|
Publicado el 29,marzo 2018 - 10:13 |
Thank you for your reply. We've been able to get the intent to work, so for now we are good. We'll have to do some more work in order for onActivityResult to work.
There are two new issues that we've encountered:
1) We now have to do a similar thing for iOS. We need to make it possible to open another app and also allow that other app to call to us. Is there anything you can suggest or you can explain so we'll be able to do this?
I'm still very new to this environment and to innerapp communication ...
2) Thread handling Since recent Android updates, there have been more and more errors on HTTP requests. We figured out that this is a thread policy problem. In Android studio, the following code solveed the problem:
import android.os.StrictMode;
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(policy);
But in Windev it didn't seem to have any effect. Is there anything on this matter you could help me with? I've looked at https://doc.windev.com/… but haven't been able to get it to work so far.
Kind regards
Mirte |
| |
| |
| | | |
|
| | |
| |
Publicado el 29,marzo 2018 - 14:13 |
Hi,
Le 3/29/2018 à 2:13 AM, Mirte VANBERGHEN a écrit :
Thank you for your reply. We've been able to get the intent to work, so for now we are good. We'll have to do some more work in order for onActivityResult to work.
There are two new issues that we've encountered:
1) We now have to do a similar thing for iOS. We need to make it possible to open another app and also allow that other app to call to us. Is there anything you can suggest or you can explain so we'll be able to do this?
I'm still very new to this environment and to innerapp communication ...
Can't help you there... I try to stay clear of IOS as much as I can...
2) Thread handling Since recent Android updates, there have been more and more errors on HTTP requests. We figured out that this is a thread policy problem. In Android studio, the following code solveed the problem:
Really ? I'm doing TONS of httprequest in android apps, and I've been testing that part extensively with androids phones version 4 to 7 without ANY problem, with my httprequest being either in the main thread or in a secondary one.
Are you sure it's not a problem in your code instead?
Best regards
-- Fabrice Harari International WinDev, WebDev and WinDev mobile Consulting
Free Video Courses, free WXShowroom.com, open source WXReplication, open source WXEDM.
More information on http://www.fabriceharari.com
import android.os.StrictMode; StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(policy); But in Windev it didn't seem to have any effect. Is there anything on this matter you could help me with? I've looked at https://doc.windev.com/… but haven't been able to get it to work so far. Kind regards Mirte |
| |
| |
| | | |
|
| | |
| |
Publicado el 09,octubre 2018 - 13:52 |
Hi Mirte,
Would you be willing to share the java code (and the imports)? Because I keep getting errors on the getPackageManger()
What I've got so far is:
import android.app.Activity; import android.content.Context; import android.content.Intent; import android.net.Uri; import android.content.pm.PackageManager;
public static void CCVCall() { Uri uri = Uri.parse("ccvpay://www.ccvmini.be/sale/EUR/0.01"); Intent intent = new Intent(Intent.ACTION_VIEW); intent.setData(uri); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); PackageManager pm = getPackageManager(); // if (intent.resolveActivity(getPackageManager()) != null) { // startActivity(intent); // }
The line (intent.resolveActivity(getPackageManager()) gave errors, so I'm trying to get a PackageManager as suggested in some sites, but the comment lines have to become active.
Thanks in advance for any suggestions
Mark |
| |
| |
| | | |
|
| | |
| |
Publicado el 11,octubre 2018 - 09:34 |
For those interested I got it working thanks to some other threads on getPackageManager() In these case I'm sending a command like this:
sCommand is string = "ccvpay://www.ccvmini.be/sale/EUR/" + EDT_BEdrag CCVCall(sCommand)
and the Java code sends the command to the app of CCV which manages payment on a mobile terminal.
Here's the code:
import android.app.Activity; import android.content.Context; import android.content.Intent; import android.net.Uri; import android.content.pm.PackageManager;
public static boolean CCVCall(String paramCommand) { Uri uri = Uri.parse(paramCommand); Intent intent = new Intent(Intent.ACTION_VIEW); intent.setData(uri); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); if (intent.resolveActivity(getContexteApplication().getPackageManager()) != null) { getContexteApplication().startActivity(intent); return true; } return false; } |
| |
| |
| | | |
|
| | |
| |
Publicado el 04,agosto 2021 - 07:33 |
Very useful, Thanks for sharing!! |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|