鸿蒙尝试(三)

2021-07-22  本文已影响0人  客观开发者

简介

为国产系统加一把火,华为将会走的更远。android 确实很好,但是鸿蒙需要人支持,也会走向更好。尝试新东西,也能给你一些支持和帮助吧。

其他学习内容

1,intent 。之前写过。两种跳转方式。
这次写返回结果。。
android 里面就有。

启动
private void startEnterThirdAbility() {
        Intent intent = new Intent();
        Set<String> entries = new HashSet<>();
        entries.add(ABILITY_C_ENTITY);
        Operation operation = new Intent.OperationBuilder().withDeviceId("")
            .withAction(ABILITY_C_ACTION)
            .withEntities(entries)
            .build();
        intent.setOperation(operation);
        intent.setParam(Const.ABILITY_PARAMETER_KEY, ABILITY_PARAMETERS);
        startAbilityForResult(intent, ABILITY_C_REQUEST_CODE);
    }
接收到信息
    @Override
    protected void onAbilityResult(int requestCode, int resultCode, Intent resultData) {
        if (resultCode != Const.ABILITY_RESULT_CODE || resultData == null) {
            return;
        }
        String result = resultData.getStringParam(Const.ABILITY_PARAMETER_KEY);
        backValueText.setText(result);
    }

第二个界面放回结果了。

  Intent intent = new Intent();
        intent.setParam(Const.ABILITY_PARAMETER_KEY, ABILITY_B2A_VALUE);
        setResult(Const.ABILITY_RESULT_CODE, intent);

2,其实这样写是不对的。
应该先看Page与AbilitySlice 。这俩为啥在这才写。其他中文文档看起来应该不费劲。
就是现实实践在看理论。
Page 模板(以下简称“Page”)是 FA 唯一支持的模板,用于提供与用户交互的能力。一个 Page 可以由一个或多个 AbilitySlice 构成,AbilitySlice 是指应用的单个页面及其控制逻辑的总和。

当一个 Page 由多个 AbilitySlice 共同构成时,这些 AbilitySlice 页面提供的业务能力应具有高度相关性。例如,新闻浏览功能可以通过一个 Page 来实现,其中包含了两个 AbilitySlice:一个 AbilitySlice 用于展示新闻列表,另一个 AbilitySlice 用于展示新闻详情.
关系图


image.png

page 生命周期


image.png

同一 Page 内导航&&不同 Page 间导航

3,真机调试
3.1,现在开发dev 工具里面申请


image.png

这两个文件。就本地操作就行了。
3.2,在登录华为账号。
添加一个项目,项目里面添加一个应用。


image.png
在最下面有个
image.png
然后添加
image.png

3.3,把这两个证书上传上去。获得 。Release.p7b 这个东西。


image.png

这个两个栏估计会用的更多,以及切换和配置。
3.4 添加设备添加证书


image.png

这俩界面我找了半大天。。。
3.5 UUId这个获取也是很难搞的。


image.png

https://developer.huawei.com/consumer/cn/doc/distribution/app/agc-help-harmonyos-debugapp-manual-0000001177608893
文档
值得一提的是获取uuid是

image.png
image.png
我的失败了。我找了半天是我没有真机。模拟器。搞笑了。
就打了正式包了。
image.png

4,定位获取

 Location location = new Locator(this).getCachedLocation();
            double latitude = location.getLatitude();
            double longitude = location.getLongitude();
            double direction = location.getDirection();

需要权限

requestPermission(SystemPermission.LOCATION, Constants.PERM_LOCATION_REQ_CODE);

5, 鸿蒙里面还有数据加密和解密
2d 人脸识别功能。
6,新的布局方式Fraction。Fraction是基于Ability实现的布局方式,可放置于Ability容器中作为容器界面的一部分,拥有自己的生命周期。通过对Fraction事务的相关操作实现添加、替换、显示、隐藏、入栈出栈等功能。
FractionAbility 、Fraction 这种。

7,NotificationRequest 的使用
也有页面点击跳转。
这块好像就没有通知那一说。android 做的就很头疼。
8,一个 Page 可以由一个或多个 AbilitySlice 构成,AbilitySlice 是指应用的单个页面及其控制逻辑的总和。跨设备迁移支持将 Page 在同一用户的不同设备间迁移,以便支持用户无缝切换的诉求。
9、Ai demo 我从官方demo 中看到里面潜力不少
为应用提供丰富的AI(Artificial Intelligence)能力,支持开箱即用。开发者可以灵活、便捷地选择AI能力,让应用变得更加智能。

private void initRegisters() {
        OrmContext ormContext = helper.getOrmContext("OrmTestDB", "OrmTestDB.db", BookStore.class);
        ormContext.registerEntityObserver("user", entityOrmObjectObserver);
        ormContext.registerStoreObserver("OrmTestDB", storeOrmObjectObserver);
        ormContext.close();
    }

    private void unRegisters() {
        OrmContext ormContext = helper.getOrmContext("OrmTestDB", "OrmTestDB.db", BookStore.class);
        ormContext.unregisterEntityObserver("user", entityOrmObjectObserver);
        ormContext.unregisterStoreObserver("OrmTestDB", storeOrmObjectObserver);
        ormContext.unregisterContextObserver(ormContext, contextOrmObjectObserver);
        ormContext.close();
    }

获取

  OrmContext ormContext = helper.getOrmContext("OrmTestDB", "OrmTestDB.db", BookStore.class);
        OrmPredicates predicates = ormContext.where(User.class);
        predicates.equalTo("age", 29);
        List<User> users = ormContext.query(predicates);

其它操作基本上都封装好了。
OrmContext实现数据库的升级、备份、删除、恢复,表的增删改查并监听数据变化。
在标准系统上运行。
项目做了一点demo 类的东西

上一篇 下一篇

猜你喜欢

热点阅读