问题描述
我想在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() {
}
}