API开放接口

1. 输入法

支持手写、语音、数字、字符。

  • 初始化设置
//手写默认:110;语音:111;数字:112;字符113
editText.setInputType(110);

// 获取输入的文本
editText.addTextChangedListener(new TextWatcher() {}
  • 代码调起输入法
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);
  • 监听键盘消失
edittext.setOnKeyListener(KeyEvent.KEYCODE_ENTER);
  • 删除键
edittext.setOnKeyListener(KeyEvent.KEYCODE_DEL);

2. 分享功能

2.1 分享能力获取

  • 找小天才对接人员申请支持分享的AppKey。
  • 引入sdk,具体见3.7附件下载

2.2 检测版本是否支持

如果有特殊需求可以先行检测再分享,如果没有则不需要执行,在SDK中针对版本不支持的情况会默认弹一个Toast,提示当前版本不支持分享到XX。

//查询是否支持分享到微聊
boolean isSupport = new ShareMessageManager(context).checkBaseVersion(Scene.TYPE_CHAT);
//查询是否支持分享到好友圈
boolean isSupport = new ShareMessageManager(context).checkBaseVersion(Scene.TYPE_MOMENT);

2.3 分享指定内容类型

  • 分享文本类型
//第一步:创建XTCTextObject对象,并设置text属性为要分享的文本内容
XTCTextObject xtcTextObject = new XTCTextObject();
xtcTextObject.setText("来自测试程序的分享");

//第二步:创建XTCShareMessage对象,并将shareObject属性设置为xtcTextObject对象
XTCShareMessage xtcShareMessage = new XTCShareMessage();
xtcShareMessage.setShareObject(xtcTextObject);

//第三步:创建SendMessageToXTC.Request对象,并设置
SendMessageToXTC.Request request = new SendMessageToXTC.Request();
request.setMessage(xtcShareMessage);

//第四步:创建ShareMessageManagr对象,调用sendRequestToXTC方法,传入SendMessageToXTC.Request对象和AppKey
new ShareMessageManager(this).sendRequestToXTC(request, "appkey");
  • 分享图片类型
//第一步:创建XTCImageObject 对象,并设置bitmap属性为要分享的图片
XTCImageObject xtcImageObject = new XTCImageObject();
xtcImageObject.setBitmap(BitmapFactory.decodeResource(getResources(), R.mipmap.img_show));
//如果图片在公共目录,可以直接设置图片路径即可
xtcImageObject.setImagePath(“filePath”);

//第二步:创建XTCShareMessage对象,并将shareObject属性设置为xtcTextObject对象
XTCShareMessage xtcShareMessage = new XTCShareMessage();
xtcShareMessage.setShareObject(xtcImageObject);

//第三步:创建SendMessageToXTC.Request对象,并设置message属性为xtcShareMessage
SendMessageToXTC.Request request = new SendMessageToXTC.Request();
request.setMessage(xtcShareMessage);
request.setFlag(1);//设置跳转参数,设置为1为分享成功停留到微聊或者好友圈,设置为0或者不设置分享成功会返回原分享界面

//第四步:创建ShareMessageManagr对象,调用sendRequestToXTC方法,传入SendMessageToXTC.Request对象和AppKey
new ShareMessageManager(this).sendRequestToXTC(request, "appKey");
  • 分享程序类型(图文类型)
//第一步:创建XTCAppExtendObject对象
XTCAppExtendObject xtcAppExtendObject = new XTCAppExtendObject();
//设置点击分享的内容启动的页面
xtcAppExtendObject.setStartActivity(MainActivity.class.getName());
//设置分享的扩展信息,点击分享的内容会将该扩展信息带入跳转的页面
xtcAppExtendObject.setExtInfo("ExtendInfo");

//第二步:创建XTCShareMessage对象,并将shareObject属性设置为xtcTextObject对象
XTCShareMessage xtcShareMessage = new XTCShareMessage();
xtcShareMessage.setShareObject(xtcAppExtendObject);
//设置图片
xtcShareMessage.setThumbImage(BitmapFactory.decodeResource(getResources(), R.mipmap.img_app));
//设置文本
xtcShareMessage.setDescription("这是一条图文分享信息");

//第三步:创建SendMessageToXTC.Request对象,并设置message属性为xtcShareMessage
SendMessageToXTC.Request request = new SendMessageToXTC.Request();
request.setMessage(xtcShareMessage);
request.setFlag(1);//设置跳转参数,设置为1为分享成功停留到微聊或者好友圈,设置为0或者不设置分享成功会返回原分享界面

//第四步:创建ShareMessageManagr对象,调用sendRequestToXTC方法,传入SendMessageToXTC.Request对象和AppKey
new ShareMessageManager(this).sendRequestToXTC(request, "appKey");

2.4 分享回调

//第一步:在点击分享的页面实现IResponseCallback接口
public class MainActivity extends Activity implements IResponseCallback{...}

//第二步:在onCreate、onNewIntent方法中处理回调
private IXTCCallback xtcCallback;
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    //处理回调
    xtcCallback = new XTCCallbackImpl();
    xtcCallback.handleIntent(getIntent(), this);
}
protected void onNewIntent(Intent intent) {
    super.onNewIntent(intent);
    setIntent(intent);

    //处理回调
    xtcCallback.handleIntent(intent, this);
}

//第三步:实现onResp和onReq方法
public void onResp(boolean isSuccess, BaseResponse response) {
    //to-do
}
public void onReq(ShowMessageFromXTC.Request request) {
    //to-do
}
  • onResp方法

该方法是用于点击分享之后,分享结果信息的回调。

字段 说明
isSuccess 是否分享成功
response.getCode() 回调状态码,具体可以通过BaseResponse.Code进行判断
response.getErrorDesc() 状态码的描述
response.getConversationId() 分享的会话ID,好友圈为-1,其是将微聊的会话ID进行加密后返回的
response.getTransaction() 标识唯一分享
  • onReq方法

该方法是用于在微聊或好友圈点击分享的程序信息后会跳转到指定页面的回调。

字段 说明
request.getExtInfo() XTCAppExtendObject对象设置的extInfo属性
request.getScene() 分享到的场景,scene.getType()判断场景类型,Scene.TYPE_CHAT是微聊,Scene.TYPE_MOMENT是好友圈
request.getTransaction() 标识唯一分享

2.5 分享指定渠道

image

除上述点击分享后调到一个渠道选择页面(如上图)外,还可以跳过渠道选择页面直接分享到指定渠道,详细方法如下:

  • 分享到微聊
//第一步:创建场景
Chat chat = new Chat();
//允许显示的会话,如果不设置默认为好友和好友群
chat.setFriendType(Chat.FRIEND|Chat.FRIEND_GROUP);
//需要过滤的好友,传入coversitionId列表(conversitionId来自于onReq方法)
chat.setFilterConversationList(filterConversationList);
//过滤机型
chat.setFilterModeList(filterModeList)
//点击过滤的好友需要Toast的文本内容
chat.setFilterTip(context.getString(R.string.share_error_limit));

//第二步:将场景设置到SendMessageToXTC.Request对象中
SendMessageToXTC.Request request = new SendMessageToXTC.Request();
request.setScene(chat);
  • 分享到好友圈
//第一步:创建场景
Moment moment = new Moment();

//第二步:将场景设置到SendMessageToXTC.Request对象中
SendMessageToXTC.Request request = new SendMessageToXTC.Request();
request.setScene(moment );

2.6 注意事项

  • new ShareMessageManager(context),该 context 必须为 Activity。

  • 应用图标尽量使用8位图标,否则压缩之后的图标太大,占用较多服务器资源。

  • 分享和跳转界面,都需要加 exproed = ture 标签。

2.7 SDK下载

请联系小天才获取。

3. 步数

支持第三方应用通过接口获取手表今日运动的步数。

private static final String TODAY_STEP_URI = "content://com.xtc.motion/step";
private static final String TODAY_STEP_KEY = "step";
...

int step = 0;
boolean querySuccess = false;
Cursor cursor = null;

ContentResolver contentResolver = getContentResolver();
Uri uri = Uri.parse(TODAY_STEP_URI);
try {
    cursor = contentResolver.query(uri, null, null,
        null, null);
if (cursor != null && cursor.moveToNext()) {
    step = cursor.getInt(cursor.getColumnIndex(TODAY_STEP_KEY));
    querySuccess = true;
}
    Log.d(TAG, "query today step success = " + step);
} catch (Exception e) {
    e.printStackTrace();
    Log.d(TAG, "query today step error!");
} finally {
    if (cursor != null) {
        cursor.close();
    }
}

4. Z6 翻盖翻起适配

支持第三方应用监听手表翻盖的状态。


//初始状态
读取persist.sys.hall.opened值;true为打开状态
//实时监听
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == 287){
//关闭
} else if(keyCode == 288){
//打开
}
return super.onKeyDown(keyCode, event);
}

5. 音乐通知栏

播放音乐的时候,支持在通知栏显示当前的信息,以及快捷上一首/下一首/暂停/播放。

使用说明如下:


RemoteViews musicViews = new RemoteViews(context.getPackageName(), R.layout.notification_remote_view);
initView();
NotificationCompat.Builder builder = new NotificationCompat.Builder(context);
NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
builder.setContent(musicViews)
        .setAutoCancel(false)
        .setSmallIcon(R.drawable.ic_app_cloud_music)
        .setWhen(System.currentTimeMillis());
notification = builder.build();
notification.flags = Notification.FLAG_ONGOING_EVENT
            | 134217728
    ;
private void initView() {
	musicViews.setImageViewResource(R.id.notification_music_play, R.drawable.ic_notification_play_normal);
	//点击上一首按钮
	Intent previousIntent = new Intent();
	previousIntent.setAction(ACTION_NOTIFICATION_PREVIOUS);
	previousIntent.setPackage(mContext.getPackageName());
	musicViews.setOnClickPendingIntent(R.id.notification_music_previous,
	            PendingIntent.getBroadcast(mContext, REQUEST_CODE_PREVIOUS, previousIntent, PendingIntent.FLAG_UPDATE_CURRENT));
	//点击下一首按钮
	Intent nextIntent = new Intent();
	nextIntent.setAction(ACTION_NOTIFICATION_NEXT);
	nextIntent.setPackage(mContext.getPackageName());
	musicViews.setOnClickPendingIntent(R.id.notification_music_next,
	            PendingIntent.getBroadcast(mContext, REQUEST_CODE_NEXT, nextIntent, PendingIntent.FLAG_UPDATE_CURRENT));
	//点整体,跳转
	Intent splashIntent = new Intent();
	splashIntent.setAction(ACTION_NOTIFICATION_START_APP);
	musicViews.setOnClickPendingIntent(R.id.notification_music_title,
	            PendingIntent.getBroadcast(mContext, REQUEST_CODE_SKIP_TO_SPLASH, splashIntent, PendingIntent.FLAG_UPDATE_CURRENT));
}
//显示
public void notification() {
	notificationManager.notify(CLOUD_MUSIC_NOTIFY_ID, notification);
}

6.Webview网页功能

提供支持在手表上打开Web网页的功能和web网页与手表交互一些的能力。

webSDK

7.相机拍照,相册获取图片功能

通用接口调用拍照文档

8.demo下载

请联系小天才获取。

9. 待支持功能

  • 推送
  • 定位
  • 小视频录制
  • 做活动消耗积分
Last Updated: 2020-7-3 16:18:00