Author Archives: 宗, 博洋

您的应用可以分发到海外了!

小米应用商店在您和所有开发者朋友的帮助和支持下,日均下载量已超过5000万,累计下载超过100亿次,依托着小米手机的优质平台,迅速成长为中国领先的移动分发渠道之一。

一直以来,小米应用商店都是小米手机用户最大的应用安装来源。随着小米公司国际化步伐的加快,小米手机目前已经销售到了香港、台湾、新加坡、印度等地区和国家,我们应用商店也希望随着我们的手机一起走向国际,将优质的应用分享给更多的海外用户。
所以在这之前,我们非常诚挚的希望您能够将应用授权给小米应用商店,在更多的地区和国家提供给小米用户下载和使用。

我们相信,您的应用也必将在更多的地区和国家获得更多用户和更加广阔的市场。所以希望您能尽快登录[小米开发者站],添加和修改您应用的分发地区;
同时,建议您一并提交符合分发地区语言的应用描述和截图,我们将在1-3个工作日内为您审核完成;审核通过后,您的应用将会随着小米手机一起登录这些地区和国家。

您可以通过以下资料了解详细的操作流程:

感谢您一直以来对小米应用商店的支持,如果您对以上内容有任何疑问,欢迎通过以下方式随时联系我们:

 业务类型 邮箱
 应用  developer@xiaomi.com
 单机/休闲/棋牌  shangjing@xiaomi.com
 网游  tanlubo@xiaomi.com

如何修改已经上线的应用的分发地区?如何修改应用不同语言的介绍?

已经上线的应用的分发地区默认都为中国大陆,如果您的应用不支持其他地区,则无需修改。

目前支持的分发地区如下:

  • 中国大陆
  • 台湾地区
  • 香港地区

具体修改流程如下:

  • 登录开发者后台点击“手机和平板”
    QQ截图20141215114259
  • 选择您想要修改分发地区的应用,点击“修改应用信息”按钮
    修改应用信息
  • 拉到最下面,选择“编辑”后进入应用信息修改界面;选择您的应用的分发地区后点击“下一步” QQ截图20141124202357
  • 填写不同语言的应用介绍123
  • 注:不同地区所对应的语言优先级不同,如果您没有填写分发地区最高优先级的语言资料,会显示下一个优先级的语言资料。

    语言优先级如下所示:

    中国大陆: 简体中文 > 繁体中文 > 英文
    台湾、香港地区: 繁体中文 > 简体中文 > 英文
    例如:一个应用设置了在台湾地区上线,但只填写了简体中文和英文的资料,则在台湾地区会显示简体中文的资料。

  • 填写您想要填写的语言资料后,点击“保存并返回”
    1 2
  • 填写完所有要提交的语言之后,点击“下一步”,提交审核即可。
    4

 常见问题Q&A:

Q:香港、台湾地区的应用信息变更,是否要求繁体或英文?
A:作为应用分发平台,我们不要求开发者做语言变更。但我们建议您将应用描述及关键词修改更为友好的本地语言(英文或繁体中文)。

从内容推荐角度,语言优先级为英文>繁体中文>简体中文。

个人开发者身份可以转换成企业开发者身份么?个人开发者如何转换成企业开发者身份?

目前不支持个人开发者身份和企业开发者身份之间的类型转换。

替代的解决办法:

  1. 注册新的企业开发者身份
  2. 参照应用转移流程,将之前个人开发者账号下的应用转移到新的企业开发者账号下。应用转移流程如下:http://dev.xiaomi.com/doc/p=739/index.html

 

平板应用商店首发流程

自从2014年5月15日接受平板应用提交以来,小米平板应用商店正在一步步的发展壮大。

为了把最新适配小米平板的应用在第一时间介绍给最活跃的小米发烧友们。我们正式推出了小米平板应用商店首发合作

一、设计要求:

小米平板的屏幕比例是4:3的。需要对应用的整体界面做一个重新的设计,包括字体大小、间距、图片质量 (相对于安卓设计规范,ipad mini的设计规范其实是更符合小米PAD的

具体的交互建议如下:http://dev.xiaomi.com/doc/?p=2825

二、应用首发申请审核标准

新应用:

  • 完美适配小米平板(需编辑审核)
  • 符合平板的使用场景
  • 应用质量优秀

更新应用:

  • 更新版本需要满足新应用所有要求的同时,还需要在界面交互、功能体验及应用内容上有明显的提升,仅仅是功能基础优化及BUG的修复不会作为首发的选择依据

三、首发申请邮件格式

提前5-10个工作日将首发申请邮件发送至 shoufa@xiaomi.com进行资质审核。我们会在1-2个工作日之内邮件回复首发是否通过审核。

  • 邮件标题:【平板应用】首发申请-“应用名称”
  • 应用名称:
  • 应用所在小米应用商店的前台链接:(如是新应用则可填无)
  • 应用所属分类:(请参看应用应用商店前台应用分类)
  • 申请首发日期:
  • 更新日志:(新应用请填写详细的应用介绍)
  • 新版本首发apk包:(作为附件发送,若文件过大,无法发送,请提供网盘链接。首发申请apk包可为beta包、可以有BUG,但须包含更新日志中所描述的功能)
  • 测试账号:如应用内包含注册登录功能,请提供相应测试账号
  • 联系方式:QQ、电话

 

四、首发可提供的推荐位置

具体首发位置和推荐时间,将会有工作人员联系您一同协商。

四、友情链接

MIUI for Pad 三方应用交互建议
平板应用该如何提交?
小米手机&平板设备规格

开放文件存储使用指南

 

1. 小米开放文件存储(FDS)简介

1.1 FDS综述

小米开放文件存储(File Storage Service, 简称FDS),是小米开放平台(http://dev.xiaomi.com)所提供的众多云服务之中的一种。FDS向开发者提供了简洁直观的Restful API,开发者可以直接通过标准Http协议来调用FDS的API,同时,为了方便广大开发者,FDS目前提供了Java、PHP和Android平台的SDK,开发者可以根据自己的应用需求选用合适的SDK。

1.2 FDS的优势

FDS专注于提供使用简便、可靠的文件存储服务,下面是FDS服务的一些优势:

  • 简单的数据模型:FDS采用了Bucket/Object数据模型,跟业内主流系统保持一致,方便开发者理解,降低使用门槛;
  • 直观易用的API:FDS提供了简洁的Restful API, 开发者可以通过标准Http协议直接访问;
  • 完善的认证与授权机制:FDS支持各种身份认证机制(包括签名、OAuth2.0和小米SSO认证),FDS还支持了完备的授权管理机制,最大程度的保护用户数据的安全;
  • 弹性高可用的服务质量:FDS架构上支持良好的水平扩展性,对用户提供7×24高可用的服务;
  • 灵活的应用场景: 支持的文件大小不受限制,能很好地适应更种应用场景;
  • 低廉的存储成本: 支持Reed-Solomon编码,在保证数据可靠性的前提下,能够最大程度地节约存储成本。

1.3 FDS的基本概念

  • 桶(Bucket):  Bucket是存储Object的容器,在同一个Region内,Bucket是全局唯一的。每个Object都存在于某一个Bucket中,一个Bucket里面可以包含很多个Object。
  • 对象(Object):  Object是用户实际存储在FDS中的数据,包括用户存储的文件内容和文件相关的元信息,它们合在一起,统称为Object。
  • 区域(Region): Region是物理上数据中心的划分,一个数据中心的FDS称之为一个Region。同一个Region内的Bucket在该Region内是全局唯一的。

2. 用户身份认证

2.1 签名认证

本部分介绍FDS中用到的签名认证的基本原理。

2.1.1 基本概念

使用FDS服务的签名算法,需要了解以下基本概念:

  • App Access Key: 开发者在小米开放平台申请的App Access Key, 用于标识开发者的App;
  • App Secret Key: 开发者在小米开放平台申请App Access Key时颁发的App Secret Key, 这个由用户自己保存,是用来做签名时的密钥;
  • Signature: 根据Access Key,Secret Key和用户请求计算出的数字签名,用于验证用户身份。

2.1.2 基于签名的认证过程

用户要使用签名来认证身份,通常需要按下面的步骤来进行:

  • 构建准备发往FDS的Http请求;
  • 使用App Secret Key和构建好的请求内容,计算签名;
  • 将计算好的签名和App Access Key组合起来,置于Http请求的“authorization” Header中,将请求发往FDS;
  • FDS收到请求,从”authorization” Header中解析中App Access Key和对应的签名;
  • FDS用解析出的App Access Key获取到对应的App Secret Key;
  • FDS用App Secret Key和请求内容进行签名,得到服务端签名;
  • FDS对比服务端签名和用户请求解析出来签名,如果一致刚认证通过,否则认证不通过。

注意:  App Secret Key不会在上述请求过程中传输。

2.1.3 签名算法

签名算法是签名认证的核心,以下是签名算法的详细介绍:

  • 签名在Http头中的格式:“authorization: Galaxy-V2“ + “ “ + App Access Key + “:“ + Signature ;
  • 签名计算:Signature = Base64(Hmac-Sha1(AppAccessSecret, StringToSign));
  • 签名字符串(StringToSign)的构造:
    StringToSign = HttpMethod + “\n” +
    content-md5 + “\n” +
    content-type + “\n” +
    date + “\n” +
    CanonicalizedHeaders +
    CanonicalizedResource;
  • CanonicalizedHeaders构造:

用户可以通过“x-xiaomi-“的方式,向FDS传自定义的Header,  CanonicalizedHeaders指的是规范化过之后的用户自定义的Headers,规范化的过程如下:

  1. 所有的Header都要转成全小写;
  2. 将Header按Key进行字典序排序;
  3. 将具有相关Key的Headers合并,多个值之间用”,”分隔;
  4. 将上述字符串连接起来即是CanonicalizedHeaders。
  • CanonicalizedResource构造: CannonicalizedResource是由用户请求的Uri的相对路径加上FDS预定义的SubResource(Acl等)相关的参数组成的。

2.1.4 签名库

FDS目前提供了C++/Java/PHP版本的签名库,详细的签名算法可以参见具体的签名库的实现。

3. Bucket操作REST API指南

3.1 列所有Bucket

  • 语义:
    列出当前用户所拥有的所有Buckets
  • 语法:
    GET /HTTP/1.1
    Host: files.fds.api.xiaomi.com
    Date: date
    Authorization: authorization_string
  • 请求参数:
  • 请求头:

    字段 取值 是否必须 描述
    Date 字符串,需符合Http协议定义 请求的当前时间
    Authorization 身份认证字符串,跟选用的认证机制有关,具体格式为:1. 签名认证: “Galaxy_V2” + “ “ + AppAccessKey + “:“ + Signature2. OAuth2.0认证: “OAuth”3. 小米SSO认证: “SSO” 目前支持Signature/OAuth2.0/小米SSO三种方式的认证,选择合适的使用

3.2 创建新Bucket

  • 语义:
    创建指定名字的Bucket
  • 语法:
    PUT /bucket_name HTTP/1.1
    Host: files.fds.api.xiaomi.com
    Date: date
    Content-Length: content_length
    Authorization: authorization_string
  • 请求参数:
    参数 取值 是否必须 描述
    acl 正常创建Bucket时不需要,如果要修改Bucket的ACL信息,需要指定该参数
  • 请求头:
    字段 取值 是否必须 描述
    Date 字符串,需符合Http协议定义 请求的当前时间
    Authorization 身份认证字符串,跟选用的认证机制有关,具体格式为:1. 签名认证: “Galaxy_V2” + “ “ + AppAccessKey + “:“ + Signature2. OAuth2.0认证: “OAuth”3. 小米SSO认证: “SSO” 目前支持Signature/OAuth2.0/小米SSO三种方式的认证,选择合适的使用
    Content-Length 整数值, body的长度 创建Bucket时,Body长度为0;修改Bucket ACL时,Body长度为对应的JSON string的长度

3.3 列Bucket下面的Object

  • 语义:
    列出指定Bucket下面所有的Objects
  • 语法:
    GET /bucket_name HTTP/1.1
    Host: files.fds.api.xiaomi.com
    Date: date
    Authorization: authorization_string
  • 请求参数:
    参数 取值 是否必须 描述
    acl 用于获取指定Bucket的ACL信息
    uploads 用于获取指定Bucket下正在进行的Multipart Upload
    prefix 字符串 列指定前缀的所有Objects
    delimiter 字符,缺省为’/’ Object名字中的分隔符,用来生成Common Prefix
    marker 字符串 当一个Bucket下面的Object数量大于maxKeys时,会分批次返回,marker表示当前批次的起始Object名字(字典序)
    maxKeys 在(0, 1000]范围内的整数,缺省为1000 当一个Bucket下面有比较多的Object数量的时候,需要分批次返回结果,maxKeys表示每个批次可返回Object数的最大值
  • 请求头:

    字段 取值 是否必须 描述
    Date 字符串,需符合Http协议定义 请求的当前时间
    Authorization 身份认证字符串,跟选用的认证机制有关,具体格式为:1. 签名认证: “Galaxy_V2” + “ “ + AppAccessKey + “:“ + Signature2. OAuth2.0认证: “OAuth”3. 小米SSO认证: “SSO” 目前支持Signature/OAuth2.0/小米SSO三种方式的认证,选择合适的使用

3.4 删除Bucket

  • 语义:
    删除指定名字的Bucket
  • 语法:
    DELETE /bucket_name HTTP/1.1
    Host: files.fds.api.xiaomi.com
    Date: date
    Authorization: authorization_string
  • 请求参数:
  • 请求头:

    字段 取值 是否必须 描述
    Date 字符串,需符合Http协议定义 请求的当前时间
    Authorization 身份认证字符串,跟选用的认证机制有关,具体格式为:1. 签名认证: “Galaxy_V2” + “ “ + AppAccessKey + “:“ + Signature
    2. OAuth2.0认证: “OAuth”
    3. 小米SSO认证: “SSO”
    目前支持Signature/OAuth2.0/小米SSO三种方式的认证,选择合适的使用

3.5 判断Bucket存在性

  • 语义:
    判断指定的Bucket是否存在
  • 语法:
    HEAD /bucket_name HTTP/1.1
    Host: files.fds.api.xiaomi.com
    Date: date
    Authorization: authorization_string
  • 请求参数:
  • 请求头:

    字段 取值 是否必须 描述
    Date 字符串,需符合Http协议定义 请求的当前时间
    Authorization 身份认证字符串,跟选用的认证机制有关,具体格式为:1. 签名认证: “Galaxy_V2” + “ “ + AppAccessKey + “:“ + Signature
    2. OAuth2.0认证: “OAuth”
    3. 小米SSO认证: “SSO”
    目前支持Signature/OAuth2.0/小米SSO三种方式的认证,选择合适的使用

4. Object操作REST API指南

4.1 上传Object (PUT)

  • 语义:
    上传指定名字的Object到指定的Bucket下,同名Object为覆盖语义
  • 语法:
    PUT /bucket_name/object_nameHTTP/1.1
    Host: files.fds.api.xiaomi.com
    Date: date
    Authorization: authorization_string
    body
  • 请求参数:
    参数 取值 是否必须 描述
    uploads Multipart Upload开关,传该参数,就表示当前的Upload是一个Multipart Upload
    partNumber 整数 Multipart Upload的part序号,用于表示当前上传的是第多少个part
    renameTo 字符串 用来对Object进行重命名,值是重命名后的Object名字
    acl ACL开关,传该参数,表示给当前的Object设置ACL
    expires 整数,毫秒 上传成功返回的Pre-signed URI的过期时间,不传的话,默认为30天
  • 请求头:

    字段 取值 是否必须 描述
    Date 字符串,需符合Http协议定义 请求的当前时间
    Authorization 身份认证字符串,跟选用的认证机制有关,具体格式为:1. 签名认证: “Galaxy_V2” + “ “ + AppAccessKey + “:“ + Signature2. OAuth2.0认证: “OAuth”3. 小米SSO认证: “SSO” 目前支持Signature/OAuth2.0/小米SSO三种方式的认证,选择合适的使用
    Content-Length 整数值, body长度 body内容的字节长度
    Content-Type 字符串, body类型 body内容的类型,缺省会根据文件名后缀进行自动识别,不能识别的缺省为置为binary/octet-stream
    Content-MD5 字符串, Base64(body MD5) 用于检验body内容正确性
    Cache-Control 字符串,需符合Http协议定义 用来控制对当前Object的缓存策略
    Content-Encoding 字符串,需符合Http协议定义 用来指定Object内容的编码方式
    Last-Modified 字符串,需符合Http协议定义 用来指定Object最后一次更新时间
    x-xiaomi-meta- 字符串,用户自定义的的元信息 以x-xiaomi-meta-为前缀,用户可以定义个性化的元信息

4.2 上传Object (POST)

  • 语义:
    从指定的Bucket下载指定的Object
  • 语法:
    GET /bucket_name/object_nameHTTP/1.1
    Host: files.fds.api.xiaomi.com
    Date: date
    Authorization: authorization_string
  • 请求参数:
    参数 取值 是否必须 描述
    acl 获取Object ACL信息的开关,打开时,GET的结果是对应Object的ACL信息
    metadata  获取Object元数据的开关,打开时,GET的结果是对应Object的元数据
  • 请求头:

    字段 取值 是否必须 描述
    Date 字符串,需符合Http协议定义 请求的当前时间
    Authorization 身份认证字符串,跟选用的认证机制有关,具体格式为:1. 签名认证: “Galaxy_V2” + “ “ + AppAccessKey + “:“ + Signature
    2. OAuth2.0认证: “OAuth”
    3. 小米SSO认证: “SSO”
    目前支持Signature/OAuth2.0/小米SSO三种方式的认证,选择合适的使用

4.3 删除Object

  • 语义:
     从指定的Bucket下删除指定的Object
  • 语法:
    DELETE /bucket_name/object_nameHTTP/1.1
    Host: files.fds.api.xiaomi.com
    Date: date
    Authorization: authorization_string
  • 请求参数:
    参数 取值 是否必须 描述
    uploadId 字符串 删除一个指定的Multipart Upload
  • 请求头:

    字段 取值 是否必须 描述
    Date 字符串,需符合Http协议定义 请求的当前时间
    Authorization 身份认证字符串,跟选用的认证机制有关,具体格式为:1. 签名认证: “Galaxy_V2” + “ “ + AppAccessKey + “:“ + Signature2. OAuth2.0认证: “OAuth”3. 小米SSO认证: “SSO” 目前支持Signature/OAuth2.0/小米SSO三种方式的认证,选择合适的使用

4.4 判断Object存在性

  • 语义:
    删除指定名字的Bucket
  • 语法:
    DELETE /bucket_name HTTP/1.1
    Host: files.fds.api.xiaomi.com
    Date: date
    Authorization: authorization_string
  • 请求参数:
  • 请求头:

    字段 取值 是否必须 描述
    Date 字符串,需符合Http协议定义 请求的当前时间
    Authorization 身份认证字符串,跟选用的认证机制有关,具体格式为:1. 签名认证: “Galaxy_V2” + “ “ + AppAccessKey + “:“ + Signature
    2. OAuth2.0认证: “OAuth”
    3. 小米SSO认证: “SSO”
    目前支持Signature/OAuth2.0/小米SSO三种方式的认证,选择合适的使用

3.5 判断Bucket存在性

  • 语义:
    判断指定Bucket下是否存在指定的Object
  • 语法:
    HEAD /bucket_name/object_nameHTTP/1.1
    Host: files.fds.api.xiaomi.com
    Date: date
    Authorization: authorization_string
  • 请求参数:
  • 请求头:

    字段 取值 是否必须 描述
    Date 字符串,需符合Http协议定义 请求的当前时间
    Authorization 身份认证字符串,跟选用的认证机制有关,具体格式为:1. 签名认证: “Galaxy_V2” + “ “ + AppAccessKey + “:“ + Signature2. OAuth2.0认证: “OAuth”3. 小米SSO认证: “SSO” 目前支持Signature/OAuth2.0/小米SSO三种方式的认证,选择合适的使用

4.5 Pre-signed URI

Pre-signed URI是FDS提供的一种灵活的共享资源的方式。Object的拥有者使用自己的App Secret Key预先对Object的访问链接进行签名,生成出带一定有效期的Pre-signed URI。Object拥有者将该Pre-signed URI发给其它用户,其它用户在上述有效期内可以用该Pre-signed URI对指定的Object,执行指定的操作。

  • Pre-signed URI的格式如下:
    http://files.fds.api.xiaomi.com/bucket_name/object_name?Expires=expires&GalaxyAccessKeyId=app_access_key&Signature=signature
  • 参数说明:
    参数 取值 是否必须 描述
    Expires 整数,毫秒 Pre-signed URI过期时间
    GalaxyAccessKeyId 字符串 签发Pre-signed URI者的App Access Key
    Signature 字符串 Base64编码过的签名串

 

5. FDS错误码参考

错误码 描述 Http状态码
Success 请求处理成功 200, OK
BucketAccessDenied 访问Bucket权限不够 403, Forbidden
BucketAlreadyExists 创建Bucket时Bucket已经存在 409, Conflict
BucketNotFound 访问的Bucket不存在 404, Not Found
ObjectAccessDenied 访问Object权限不够 403, Forbidden
ObjectAlreadyExists Post方式创建Object时Object已经存在 409, Conflict
ObjectNotFound 访问的Object不存在 404, Not Found
RequestTimeout 请求处理超时 401, Bad Request
InvalidRequest 非法的请求 401, Bad Request
SignatureDoesNotMatch 客户端跟服务端的签名不一致 403, Forbidden
RequestTimeTooSkewed 请求的时间戳超过15分钟的限制 403, Forbidden
RequestExpired 请求已过期 403, Forbidden
InvalidOAuthParameters OAuth认证的参数不合法 401, Bad Request
VerifyOAuthAccessTokenError 验证OAuth的Acess Token失败 403, Forbidden
QuotaExceeded 分配的Quota超过限制 401, Bad Request
RequestNotSupported 不支持的请求类型 501, Not Implemented
InvalidRequestRange 请求头中Range参数的值不合法 416, Requested Range Not Satisfiable
AuthenticationFailed 用户身份认证失败 403, Forbidden
InternalServerError 服务器内部出错,联系管理员 500, Internal Server Error

 

6. 其它

6.1 使用缩略图服务

FDS支持对JPEG/PNG/GIF三种类型的图片进行缩略,用户可以自行指定缩略的长、宽,具体用法是在请求的URL后面加下列参数:

参数 取值 是否必须 描述
thumb 1 缩略图开关,值为1表示开启缩略
w 整数值 缩略图的宽度,单位为像素
h 整数值 缩略图的高度,单位为像素

6.2 使用Https进行安全访问

FDS支持通过Https进行访问,将正常访问的URL中的scheme由Http替换为Https即可。对于比较敏感的用户信息,请尽量使用Https进行上传、下载。

6.3 使用CDN加速下载请求

FDS支持通过CDN加速下载请求,对于下载请求量比较大的应用,请尽量使用CDN来进行下载。CDN服务的地址为:

http://cdn.fds.api.xiaomi.com
https://cdns.fds.api.xiaomi.com

 

7. 文档修订历史

2014/10/23, 完成初始版本。

MIUI 6 沉浸式状态栏调用方法

看着iOS美腻腻的沉浸,看着MIUI 6 美腻腻的系统App沉浸,看着自己黑不溜秋的状态栏!强迫症的你还能忍受吗?今天,正式启动强迫症患者拯救行动!快来将你的应用也实现完美沉浸吧!

Demo下载:猛戳下载

一、什么是沉浸式状态栏

  • 默认情况的状态栏是不透明白色字体的状态栏样式,如下图:

34

  • 目前MIUI 6的完美沉浸已经支持透明白色字体和透明黑色字体

如下图:

1 2

二、沉浸式状态栏实现代码

  • 第三方应用需要用反射调用,参考代码:
miuiv6只支持4.4及以上版本,调用状态栏透明的方法可以直接用原生的安卓方法

    @TargetApi(19)
    protected void setTranslucentStatus(boolean on) {
        Window win = getWindow();
        WindowManager.LayoutParams winParams = win.getAttributes();
        final int bits = WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS;
        if (on) {
            winParams.flags |= bits;
        } else {
            winParams.flags &= ~bits;
        }
        win.setAttributes(winParams);
    }

下面是调用状态栏 是否为darkmode。

    public void setStatusBarDarkMode(boolean darkmode, Activity activity) {
            Class<? extends Window> clazz = activity.getWindow().getClass();
            try {
            int darkModeFlag = 0;
            Class<?> layoutParams = Class.forName("android.view.MiuiWindowManager$LayoutParams");
            Field field = layoutParams.getField("EXTRA_FLAG_STATUS_BAR_DARK_MODE");
            darkModeFlag = field.getInt(layoutParams);
            Method extraFlagField = clazz.getMethod("setExtraFlags", int.class, int.class);
            extraFlagField.invoke(activity.getWindow(), darkmode ? darkModeFlag : 0, darkModeFlag);
            } catch (Exception e) {
                e.printStackTrace();
            }
    }
    注:

  • 沉浸式菜单栏只能在MIUI 6的系统上实现,其他安卓系统没有效果。
  • 沉浸式效果对非MIUI系统的兼容性不会有任何影响。
  • google的actionbar存在bug,不支持沉浸代码。

Demo下载:猛戳下载

我的应用排名异常,如第一天在比较靠前位置,第二天在一千名以外,是什么原因?我的应用已经有几千的下载量了,可是在搜索下拉里面找不到?小米的搜索算法是怎么样的?小米的排行算法是怎么样的?

首先 必须强调:搜索和排行的算法都属于公司机密!大家不要再惦记啦~
换句话说,如果一个应用商店的排行结果和搜索结果是可以让开发者想办法去优化的话,那这个排行和搜索也就不公平了。

  • 关于搜索

在搜索栏输入关键字、词,去搜索的时候(模糊搜索),是按照搜索算法排序的,具体搜索算法…属于公司机密~但绝对公平公正哈!(搜索结果是一直都在变化的)

搜索结果的显示并不是完整的,只显示最前面的一些应用:如果您在搜索某关键字、词(应用名称中包含、tag关键字中包含)不显示您的应用的话,是因为经过搜索算法的计算,相关应用没有排在搜索结果的前列。

  • 关于排行

每个应用商店的侧重点都是不同的,排行算法也是不同的,小米应用商店更注重新鲜、好玩的应用,我们很愿意把最近比较热门的应用推荐给我们的用户,这也就导致了我们的排行算法更加侧重新品应用。如果您的应用排行变化比较大,是正常的哦。

我们的攻城狮也在不断的优化、调整排行的算法,绝对公平公正哈~

我的应用被竞争对手恶意刷差评了,我该怎么举报?我发现有应用在恶意刷好评,我该怎么举报?

您可以直接联系QQ:2738630359,将相关应用的前台链接发送给我们的工作日人员。

如,米聊的前台链接为:http://app.mi.com/detail/323

注:小米应用商店处理应用的恶意好评、差评有一套自己的评判机制,如果不符合恶意刷出来的标准,用户的评论(就算是不真实的评价,比如评论微信:根本没有朋友圈功能!)我们是不能删除的,请您谅解。

小米应用商店应用侵权投诉流程、侵权反通知流程、应用违规举报流程

小米应用商店应用侵权投诉流程、侵权投诉反通知流程、应用违规举报流程如下:

一、【小米应用商店侵权投诉流程】:适用应用内容侵权(如:商标、视频、音频、图片、文字、动画等内容、设计侵权、盗版打包其他应用等)。

二、【小米应用商店侵权投诉反通知流程】:适用被投诉方对权利方提出的投诉有异议。

三、【小米应用商店违规应用信息反馈流程】:适用举报应用违规(存在黄赌毒、病毒、恶意推广、欺诈等恶意行为)。