跳转到应用商店APP详情

注:只适用于应用市场3.5或以上版本的竖屏设备

1.在应用内通过Intent打开:

public void startActivity(){

String packageName = "要打开的App的包名";

String uri = String.format("market://woyou.market/appDetail?packageName=%s",packageName);

        Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));

        intent.addCategory(Intent.CATEGORY_DEFAULT);

        PackageManager packageManager = getPackageManager();

        List activities = packageManager.queryIntentActivities(intent,

                PackageManager.MATCH_DEFAULT_ONLY);

        boolean isIntentSafe = activities.size() > 0;

        if (isIntentSafe) {

            startActivity(intent);

        }

    }

2.通过使用webview打开:

在xml中使用进入应用市场详情页

如果mWebView.setWebViewClient();设置了此函数,则不能通过a链接自动打开,只能通过拦截链接再使用Intent跳转。

mWebView.setWebViewClient(new WebViewClient(){

            @Override

            public boolean shouldOverrideUrlLoading(WebView view, String url) {

                Log.d(TAG, "shouldOverrideUrlLoading: " + url);

                Intent intent = null;

                try {

                    intent = Intent.parseUri(url,Intent.URI_INTENT_SCHEME);

                } catch (URISyntaxException e) {

                    e.printStackTrace();

                    return false;

                }

                startActivity(intent);

                return true;

            }

        });

3.在浏览器打开:

地址:market://woyou.market/appDetail?packageName=包名

注:只能在终端自带浏览器或者Chrome 浏览器打开,其他浏览器均打开不开

发布应用

关于商米应用市场

每个商米合作伙伴都可以在商米官网 注册商米合作伙伴帐号,有一个自己的操作后台,原则上每一台商米的设备在卖出去的时候都会和一个合作伙伴账号绑定,商米会以合作伙伴为粒度提供部分功能和权限的控制服务。

SUNMIUI内部有一个应用市场,合作伙伴可以通过应用市场将自己的应用大规模分发到商米的设备上。部分合作伙伴可以有一个自己管理的应用市场,如果合作伙伴没有在后台打开’允许第三方应用安装'(如下图箭头所示),默认旗下用户只能通过商米应用市场为设备安装应用。

1

应用市场规则

商米为部分合作伙伴分配了不同权限的应用市场,默认合作伙伴上传的应用不用商米审核就可以出现在自己的应用市场中。商米可以审核该应用,通过审核后该应用会出现在其他合作伙伴的应用市场中,当然部分合作伙伴可以选择自己的应用不出现在其他人的应用市场,也可以选择自己应用市场不出现其他人的应用,关于权限的授予可以咨询商米客服400-902-1168(每天9:00~21:00,节日除外)

应用分发流程

应用开发完成后,上传到应用市场,用户可以在设备上的应用市场搜索到应用,如果是渠道合作伙伴可以设置应用在旗下的设备自动安装。以下讲解应用首次上传分发的流程。

1.上传应用。

在 合作伙伴后台,进入”我的应用”选项,点击创建应用

2

2.填写相关内容

点击’上传安装包’,从文件夹中选择您要上传的apk,等待上传完成后,商米后台将自动分析安装包,下图绿色箭头指示部分将会自动填写好,开发者手动填写应用介绍,应用适配的设备,应用类型等信息。

  • 上传APK安装包时如果提示包名重复,则表示此APK已经在商米应用市场上架,如果此APK是贵公司所有,请联系商米客服400-902-1168(每天9:00~21:00,节日除外),进入认领。
3

3.提交应用。

合作伙伴将剩余部分内容补充完整后,下图的’提交’按钮将由灰色不可点击变成绿色可点击状态,点击’提交’将会完成应用的上传,

4

关于灰度部署

上图中’提交’按钮上方有一个’是否灰度部署’选项,勾选后提交按钮将变成’灰度部署’项,点击后将进入灰度部署配置项中。

灰度部署是商米针对合作伙伴的实际需求提供的一项功能,每台设备在使用的时候会有一个地理理位置信息,合作伙伴在开发好自己的应用适配商米的设备后,可以根据地理位置或者SN号在部分设备上部署,只有灰度部署范围内的设备的应用市场中才会出现该应用。在小范围的灰度部署后,开发者可以将应用部署到全范围设备上。

5

设置自动安装。

如果希望上传的应用自动在旗下所有设备上安装,可以在’我的应用市场’项中设置该应用为自动安装应用(如下图箭头所示),旗下设备在收到推送通知后会自动下载安装该应用,设置自动安装后还可以设置该应用是否作为默认启动应用(如下图箭头所示),设备开机后将自动启动该应用。

6

更新应用

在应用通过商米审核后,在我的应用中列表项中会有’更新’按钮,开发者可以发布该应用的升级包。点击后进入更新应用页,更新的流程和发布流程类似,请参照上面的发布流程。

  • 上传更新包的时候如果提示签名异常,请检查APK签名是否与原来的安装包不一致。如确认是需要变更签名,则请删除应用后再创建应用
  • 上传更新包的时候如果提示包名不一致,请检查APK包名是否有变动或有没有上传错误。如确认是需要变更包名,则请删除应用后再创建应用
7

应用市场外部调用SDK接口

简介

应用市场提供一些接口供其他APP调用,具体功能包括 跳转应用详情、跳转更新列表、跳转评论弹框

Gradle依赖方式

implementation ‘com.sunmi:appstorelib:1.0.0’

跳转应用详情

/**  
 * @param context 上下文对象  
 * @param packageName 包名    
 */ 
SunmiAppStoreUtil.startAppDetail(getApplication(), "App包名");

跳转更新列表

SunmiAppStoreUtil.startAppUpdate(getApplication());

跳转评论弹框

/**
* @param context 上下文对象
* @param packageName 包名
* @param type true 主动点击弹出 false 打开自动检测弹出
*/
SunmiAppStoreUtil.startAppComment(getApplication(), "App包名", true);

以下老版本调用方式已过时,不建议使用

1.     在应用内通过Intent打开:(已过时)

public void startActivity(){ String packageName = "要打开的App的包名";

String uri = String.format("market://woyou.market/appDetail?packageName=%s",packageName);

Intent intent= new Intent(Intent.ACTION_VIEW,Uri.parse(uri));

intent.addCategory(Intent.CATEGORY_DEFAULT);

PackageManager packageManager = getPackageManager();

List activities = packageManager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);

    boolean isIntentSafe = activities.size() › 0;

if (isIntentSafe) {

startActivity(intent);

}

 }

2.     通过使用webview打开: 在xml中使用< a href=" ">进入应用市场详情页 如果mWebView.setWebViewClient();设置了此函数,则不能通过a链接自动打开,只能通过拦截链接再使用Intent跳转。(已过时)

mWebView.setWebViewClient(newWebViewClient() {

@Override public boolean shouldOverrideUrlLoading (WebView view, Stringurl){

Log.d(TAG, "shouldOverrideUrlLoading: " + url);

Intent intent = null;

try {

intent = Intent.parseUri(url, Intent.URI_INTENT_SCHEME);

} catch (URISyntaxException e) {

e.printStackTrace();return false;

}

startActivity(intent);

return true;

}

});

3.在浏览器打开: 地址:market://woyou.market/appDetail?packageName=包名 注:只能在终端自带浏览器或者Chrome 浏览器打开,其他浏览器均打不开(已过时)

4.更新 appUpdate market://woyou.market/appUpdate (已过时)

5.评论 appComment market://woyou.market/appComment?packageName=%s&type=true/false(true主动点击弹出 false 自动弹出) (已过时)

String uri = String.format(“market://woyou.market/appComment?packageName=%s&type=%s”,packageName,true);

应用检测规范

介绍

为了商米生态链中包括软件开发者,渠道伙伴,代理商,终端用户等所有合作伙伴提供统一,专业,优质的应用。我们将根据一些原则和规范对所有在商米应用市场收录的应用进行评估。

一、应用基本信息标准

1、应用名称应与安装到机器上桌面显示的名称一致

2、应用介绍和更新说明与实际功能相符

3、应用内容,介绍和更新说明不能含有危害国家安全、低俗、情色等非法内容。

4、应用截图图片清晰不模糊、无水印、竖图竖放、横图横放,所有截图方向需一致

5、应用如需登录使用,需在备注栏中填写测试账号,如无登录功能,则在备注中填写:无登录功能

二、应用功能标准

1、应用启动和运行时没有奔溃现象

2、应用可以正常安装或卸载

3、应用页面排版合理,适配横竖版屏蔽,无拉伸比例失调现象

4、应用功能模块划分清晰,业务流畅,功能完整。

三、应用安全标准

1、应用申请的权限和其实际功能不符

2、应用消耗过多的网络流量

3、应用不存在病毒代码特征

4、应用没有ROOT代码特征

5、应用使用过程中不得频繁弹出悬浮窗广告,中断用户操作,影响用户体验

四、金融安全标准

1、根据银联规范要求在金融机具上架的应用,不得申请以下权限

权限类型 权限内容 备注
金融权限 android.permission.ACCESS_LOCATION_EXTRA_COMMANDS 允许应用程序访问额外的位置提供命令
金融权限 android.permission.ACCESS_SURFACE_FLINGER 平台上底层的图形显示支持,一般用于游戏或照相机预览界面和底层模式的屏幕截图
金融权限 android.permission.BRICK 能够禁用手机,非常危险,顾名思义就是让手机变成砖头
金融权限 android.permission.CHANGE_COMPONENT_ENABLED_STATE 改变组件是否启用状态
金融权限 android.permission.CHANGE_CONFIGURATION 允许一个程序修改当前设置,如本地化
金融权限 android.permission.CELL_PHONE_MASTER_EX 手机优化大师扩展权限
金融权限 android.permission.DELETE_PACKAGES 允许程序删除应用
金融权限 android.permission.DISABLE_KEYGUARD 允许程序禁用键盘锁
金融权限 android.permission.INJECT_EVENTS 允许一个程序截获用户事件如按键、触 摸、轨迹球等等到一个时间流
金融权限 android.permission.MASTER_CLEAR 允许程序执行软格式化,删除系统配置信息
金融权限 android.permission.MODIFY_AUDIO_SETTINGS 修改声音设置信息
金融权限 android.permission.MOUNT_FORMAT_FILESYSTEMS 格式化可移动文件系统,比如格式化清空SD卡
金融权限 android.permission.PROCESS_OUTGOING_CALLS 允许程序监视,修改或放弃播出电话
金融权限 android.permission.READ_FRAME_BUFFER 读取帧缓存用于屏幕截图
金融权限 android.permission.READ_LOGS 允许程序读取底层系统日志文件
金融权限 android.permission.READ_OWNER_DATA 允许程序读取所有者数据
金融权限 android.permission.READ_SMS 允许程序读取短信息
金融权限 android.permission.REBOOT 允许程序重新启动设备
金融权限 android.permission.SET_PROCESS_FOREGROUND 允许程序当前运行程序强行到前台
金融权限 android.permission.SET_PROCESS_LIMIT 允许程序设置最大的进程数量的限制
金融权限 android.permission.SET_TIME 设置系统时间
金融权限 android.permission.SET_TIME_ZONE 设置系统时区
金融权限 android.permission.SET_WALLPAPER 允许程序设置壁纸
金融权限 android.permission.SET_WALLPAPER_HINTS 允许程序设置壁纸hits
金融权限 android.permission.SIGNAL_PERSISTENT_PROCESSES 允许程序请求发送信号到所有显示的进程中
金融权限 android.permission.WRITE_CALENDAR 写入日程,但不可读取
金融权限 android.permission.WRITE_CALENDAR 写入联系人,但不可读取
金融权限 android.permission.WRITE_SECURE_SETTINGS 允许程序读写系统安全敏感的设置项
金融权限 android.permission.WRITE_SETTINGS 允许程序读取或写入系统设置
金融权限 android.permission.SHUTDOWN 关机
金融权限 android.permission.ACCESS_FINE_LOCATION 通过GPS芯片接收卫星的定位信息,定位精度达10米以内
金融权限 android.permission.SYSTEM_ALERT_WINDOW 显示系统窗口
金融权限 android:allowBackup=”false” 允许应用数据的备份和恢复,该属性需要配置为
金融权限 android:debuggable=”true” 允许debug模式
金融权限 android:exported=”true” 允许被另一个Application的组件启动
金融权限 android:sharedUserId=”android.uid.system” 允许程序运行在系统进程中(系统权限运行)