如何在android中使用com.good.gdservice.place-call服务提供者?

问题描述

我想在Android的BlackBerry Dynamics SDK中使用placeCall api。请帮忙。

解决方法

我没有提供此服务的VOIP应用程序来尝试设置,但是下面是一些用于调用com.good.gdservice.open-url.http的示例代码,该代码与95%相同com.good.gdservice.place-call服务。只需换掉顶部的服务ID常量,并调整参数Map即可使用com.good.gdservice.open-url.http的JSON参数,这些参数在此处列出:https://marketplace.blackberry.com/services/230679021

public class MainActivity extends AppCompatActivity implements GDStateListener {

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";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    GDAndroid.getInstance().activityInit(this);

    setContentView(R.layout.activity_main);
}


public void onLaunchAccess(View view)
{
    //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;
        TextView urlTextView = (TextView)findViewById(R.id.urlTextView);
        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",urlTextView.getText());

                try
                {
                    //Launch BlackBerry Access.
                    GDServiceClient.sendTo(address,SERVICE_ID,HTTP_OPEN_URL_SERVICE_METHOD_NAME,params,null,GDICCForegroundOptions.PreferPeerInForeground);
                } catch (GDServiceException e)
                {

                    showError(e.toString());
                }
            }
        }

        if (!foundAccess)
        {
            showError("BlackBerry Access not found.");
        }
    }


}

//Display errors as a toast.
private void showError(String errMessage)
{
    Toast toast = Toast.makeText(getApplicationContext(),errMessage,Toast.LENGTH_LONG);
    toast.setGravity(Gravity.CENTER_VERTICAL,0);
    toast.show();
}

@Override
public void onAuthorized() {

}

@Override
public void onLocked() {

}

@Override
public void onWiped() {

}

@Override
public void onUpdateConfig(Map<String,Object> map) {

}

@Override
public void onUpdatePolicy(Map<String,Object> map) {

}

@Override
public void onUpdateServices() {

}

@Override
public void onUpdateEntitlements() {

}

}

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...