0

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

4

2 回答 2

0

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示例代码。

这是一个执行此操作的代码片段:

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.");
    }
}
于 2020-07-30T12:26:58.157 回答
0

对于任何需要它的人,您可以使用黑莓访问应用程序 ID 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);
    }
于 2020-08-04T16:37:47.017 回答