【问题标题】:How to open a url in Blackberry Access from an Android app如何从 Android 应用程序在 Blackberry Access 中打开 URL
【发布时间】:2020-07-30 07:24:11
【问题描述】:

我已经使用 url 方案 access://open? 从我们的 IOS 应用程序成功打开了黑莓访问权限,但它似乎不适用于Android。我们的应用程序没有与 blackberry sdk 集成。

【问题讨论】:

    标签: android blackberry good-dynamics


    【解决方案1】:

    对于任何需要它的人,您可以使用黑莓访问 appid com.good.gdgma 从您的应用打开黑莓访问。

        Intent intent = new Intent(Intent.ACTION_VIEW);
        intent.setData(Uri.parse(urlString));
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        intent.setPackage("com.good.gdgma");
        try {
            getApplicationContext().startActivity(intent);
        }
        catch(ActivityNotFoundException ex) {
            showNotInstalledDialog(App.BLACKBERRY_ACCESS);
        }
    

    【讨论】:

    • 请注意,如果禁用 BlackBerry Access 应用程序配置设置“允许外部应用程序通过 BlackBerry Access 打开 HTTP/HTTPS URL”,则可能会阻止上述代码示例。如果禁用此项,BlackBerry Access 将给出错误“外部 URL 被策略阻止”。无论该策略设置如何,上一个答案中描述的 Open HTTP URL 服务都将起作用。这两种解决方案都是有效的,只是想列出您可能从中得到的潜在错误,具体取决于 BlackBerry Access 配置。
    【解决方案2】:

    BlackBerry Access 的应用程序配置策略中有一个设置可启用或禁用此功能。它被称为“允许外部应用程序通过 BlackBerry Access 打开 HTTP/HTTPS URL”,并针对 BlackBerry UEM 中的 BlackBerry Access 应用程序配置进行了设置。此设置适用于打开 BlackBerry Access 的所有非 BlackBerry Dynamics 方法。

    如果您要与 BlackBerry Dynamics SDK 集成,推荐的方法是使用 BlackBerry Dynamics Shared Services 框架调用Open HTTP URL Service。它适用于 iOS 和 Android。这是一些使用它的 Android 示例代码。

    这是一个可以做到这一点的代码 sn-p:

    private static final String SERVICE_ID = "com.good.gdservice.open-url.http";
    private static final String SERVICE_VERSION = "1.0.0.0";
    private static final String ACCESS_ENTITLEMENT_ID = "com.good.gdgma";
    private static final String HTTP_OPEN_URL_SERVICE_METHOD_NAME = "open";
    

    ....

    //Get the service providers for the Open HTTP URL service.
    
    List<GDServiceProvider> providers = GDAndroid.getInstance().getServiceProvidersFor(SERVICE_ID, SERVICE_VERSION,
            GDServiceType.GD_SERVICE_TYPE_APPLICATION);
    
    //Ensure an provider of the Open HTTP URL service was found.
    if(providers == null || providers.size() == 0)
    {
        //No providers found.
        showError("No Open HTTP URL were found.");
    }
    else
    {
        boolean foundAccess = false;
        String yourURL = "www.whereEverYouWantToGo.com";
        for (int count = 0; count < providers.size(); count++)
        {
            GDServiceProvider provider = providers.get(count);
    
            //Ensure BlackBerry Access was found.
            if (provider.getIdentifier().equalsIgnoreCase(ACCESS_ENTITLEMENT_ID))
            {
                foundAccess = true;
    
                String address = providers.get(count).getAddress();
                Map<String, Object> params = new HashMap<>();
                params.put("url", yourURL);
    
                try
                {
                    //Launch BlackBerry Access.
                    GDServiceClient.sendTo(address, SERVICE_ID, SERVICE_VERSION,
                            HTTP_OPEN_URL_SERVICE_METHOD_NAME, params, null,
                            GDICCForegroundOptions.PreferPeerInForeground);
                } catch (GDServiceException e)
                {
    
                    showError(e.toString());
                }
            }
        }
    
        if (!foundAccess)
        {
            showError("BlackBerry Access not found.");
        }
    }
    

    【讨论】:

    • 我们没有使用 Blackberry dynamics sdk 。在 Android 上,我使用 access app-id com.good.gdgma 来打开访问权限
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-07
    • 2019-05-15
    • 1970-01-01
    相关资源
    最近更新 更多