Open third party app

前端 未结 3 1749
太阳男子
太阳男子 2021-01-16 00:27

I am developing an app that uses packagenames to start a Third Party App. I have done some research and found out that all apps can be started from a launcher intent. Are th

相关标签:
3条回答
  • 2021-01-16 00:54

    For above accepted answer, if the third party app is not installed on your emulator, you should gracefully handle it also. Here is a complete code for the same:

    public void openThirdPartyApp() {   
    
            Intent intent = new Intent("com.thirdparty.package");
                intent.setPackage("com.thirdparty.package");
    
                try {
                    ((Activity) context).startActivityForResult(intent, REQUEST_CODE);
                } catch (ActivityNotFoundException e) {
                    downloadIt();
                }
            }
    
        private void downloadIt() {
    
        Uri uri = Uri.parse("market://search?q=pname:" + "com.thirdparty.package");
        Intent intent = new Intent(Intent.ACTION_VIEW, uri);
    
                    try {
                        context.startActivity(intent);
                    } catch (ActivityNotFoundException e) {
        //creates a small window to notify there is no app available 
                    }   
    
                }
            }
    
        }
    
    0 讨论(0)
  • 2021-01-16 00:55

    Just put it in an View.OnClickListener:

    myButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = getPackageManager().getLaunchIntentForPackage(theOtherActivityPackage);
            startActivity( intent );
        }
    });
    
    0 讨论(0)
  • 2021-01-16 01:06

    You can't really 'start applications'. You can try to get the Launch Intent from the 3rd party application if you know the packagename:

    Intent intent = getPackageManager().getLaunchIntentForPackage("com.thirdparty.package");
    startActivity( intent );
    
    0 讨论(0)
提交回复
热议问题