Giter VIP home page Giter VIP logo

pushdemo's People

Contributors

comsince avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pushdemo's Issues

Manifest merger failed with multiple errors

android studio: 3.2.1
gradle: 4.6

implementation('com.meizu.flyme.internet:push-ups:4.0.0' )

无法正常编译,提示合并manifest异常。日志如下 :

log:
Manifest merger failed with multiple errors

Error: Attribute meta-data#XIAOMI_APP_ID@value at AndroidManifest.xml:49:9-83 requires a placeholder substitution but no value for <XIAOMI_APP_ID> is provided. app main manifest (this file), line 48 Error: Attribute meta-data#XIAOMI_APP_KEY@value at AndroidManifest.xml:50:9-85 requires a placeholder substitution but no value for <XIAOMI_APP_KEY> is provided. app main manifest (this file), line 49 Error: Attribute meta-data#MEIZU_APP_ID@value at AndroidManifest.xml:51:9-81 requires a placeholder substitution but no value for <MEIZU_APP_ID> is provided. app main manifest (this file), line 50 Error: Attribute meta-data#MEIZU_APP_KEY@value at AndroidManifest.xml:52:9-83 requires a placeholder substitution but no value for <MEIZU_APP_KEY> is provided. app main manifest (this file), line 51 Error: Attribute meta-data#OPPO_APP_ID@value at AndroidManifest.xml:53:9-79 requires a placeholder substitution but no value for <OPPO_APP_ID> is provided. app main manifest (this file), line 52 Error: Attribute meta-data#OPPO_APP_KEY@value at AndroidManifest.xml:54:9-81 requires a placeholder substitution but no value for <OPPO_APP_KEY> is provided. app main manifest (this file), line 53 Error: Attribute meta-data#OPPO_APP_SECRET@value at AndroidManifest.xml:55:9-87 requires a placeholder substitution but no value for <OPPO_APP_SECRET> is provided. app main manifest (this file), line 54 Error: Attribute category#${PACKAGE_NAME}@name at AndroidManifest.xml requires a placeholder substitution but no value for <PACKAGE_NAME> is provided. app main manifest (this file) Error: Attribute meta-data#com.huawei.hms.client.appid@value at AndroidManifest.xml requires a placeholder substitution but no value for <HUAWEI_APP_ID> is provided. app main manifest (this file) Error: Attribute provider#com.huawei.hms.update.provider.UpdateProvider@authorities at AndroidManifest.xml requires a placeholder substitution but no value for <PACKAGE_NAME> is provided. app main manifest (this file) Error: Attribute permission#${PACKAGE_NAME}.permission.MIPUSH_RECEIVE@name at AndroidManifest.xml:17:5-111 requires a placeholder substitution but no value for <PACKAGE_NAME> is provided. app main manifest (this file), line 16 Error: Attribute uses-permission#${PACKAGE_NAME}.permission.MIPUSH_RECEIVE@name at AndroidManifest.xml:19:5-80 requires a placeholder substitution but no value for <PACKAGE_NAME> is provided. app main manifest (this file), line 18 Error: Attribute permission#${PACKAGE_NAME}.push.permission.MESSAGE@name at AndroidManifest.xml:25:5-109 requires a placeholder substitution but no value for <PACKAGE_NAME> is provided. app main manifest (this file), line 24 Error: Attribute uses-permission#${PACKAGE_NAME}.push.permission.MESSAGE@name at AndroidManifest.xml:27:5-78 requires a placeholder substitution but no value for <PACKAGE_NAME> is provided. app main manifest (this file), line 26 Error: Attribute permission#${PACKAGE_NAME}.permission.C2D_MESSAGE@name at AndroidManifest.xml:30:5-108 requires a placeholder substitution but no value for <PACKAGE_NAME> is provided. app main manifest (this file), line 29 Error: Attribute uses-permission#${PACKAGE_NAME}.permission.C2D_MESSAGE@name at AndroidManifest.xml:32:25-66 requires a placeholder substitution but no value for <PACKAGE_NAME> is provided. app main manifest (this file), line 31

通知栏图标问题

收到魅族推送后,通知栏的图标没有使用指定的,显示的是系统默认的。
代码已经按sdk里说明修改,如下:

3.2.4 自定义通知栏小图标
PushSDK 加入了通知栏状态栏小图标自定义的功能,需要在配置的的
pushReceiver 中覆盖如下的方法:
/**

  • 获取 smallicon
  • */
    public void onUpdateNotificationBuilder(PushNotificationBuilder
    pushNotificationBuilder){
    //设置通知栏弹出的小图标

pushNotificationBuilder.setmStatusbarIcon(R.drawable.mz_push_notifica
tion_small_icon);
};
Note: Flyme6 新的通知栏中心需要按照名称来获取状态栏 Icon,你需要在相应
的 drawable 不同分辨率文件夹下放置一个名称为
mz_push_notification_small_icon 的状态栏图标文件,请确保名称正确,否则
将无法正确显示你应用的状态栏图标

already register PushId,dont register frequently

详细log::{code='200', message='already register PushId,dont register frequently'}pushId='×××××××××××××××××××××××', Become invalid after 592982 seconds }

然后在push后台推送消息,也是收不到。

3.6.3版本在联想机型上的适配问题

崩溃 堆栈信息:

#0. Crashed: pool-14-thread-1
at java.lang.Enum.valueOf(Enum.java:182)
at android.net.wifi.SupplicantState.valueOf(SupplicantState.java:33)
at android.net.wifi.SupplicantState$1.createFromParcel(SupplicantState.java:255)
at android.net.wifi.SupplicantState$1.createFromParcel(SupplicantState.java:253)
at android.net.wifi.WifiInfo$1.createFromParcel(WifiInfo.java:340)
at android.net.wifi.WifiInfo$1.createFromParcel(WifiInfo.java:325)
at android.net.wifi.IWifiManager$Stub$Proxy.getConnectionInfo(IWifiManager.java:691)
at android.net.wifi.WifiManager.getConnectionInfo(WifiManager.java:918)
at com.meizu.cloud.pushsdk.base.c.b(Unknown Source)
at com.meizu.cloud.pushsdk.a.c.f(Unknown Source)
at com.meizu.cloud.pushsdk.a.c.a(Unknown Source)
at com.meizu.cloud.pushsdk.a.c.(Unknown Source)
at com.meizu.cloud.pushsdk.a.c.(Unknown Source)
at com.meizu.cloud.pushsdk.a.c$a.a(Unknown Source)
at com.meizu.cloud.pushsdk.a.a.c(Unknown Source)
at com.meizu.cloud.pushsdk.a.a.a(Unknown Source)
at com.meizu.cloud.pushsdk.a.a$1.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
at java.lang.Thread.run(Thread.java:856)

--

Fatal Exception: java.lang.NullPointerException: enumType == null || name == null
at java.lang.Enum.valueOf(Enum.java:182)
at android.net.wifi.SupplicantState.valueOf(SupplicantState.java:33)
at android.net.wifi.SupplicantState$1.createFromParcel(SupplicantState.java:255)
at android.net.wifi.SupplicantState$1.createFromParcel(SupplicantState.java:253)
at android.net.wifi.WifiInfo$1.createFromParcel(WifiInfo.java:340)
at android.net.wifi.WifiInfo$1.createFromParcel(WifiInfo.java:325)
at android.net.wifi.IWifiManager$Stub$Proxy.getConnectionInfo(IWifiManager.java:691)
at android.net.wifi.WifiManager.getConnectionInfo(WifiManager.java:918)
at com.meizu.cloud.pushsdk.base.c.b(Unknown Source)
at com.meizu.cloud.pushsdk.a.c.f(Unknown Source)
at com.meizu.cloud.pushsdk.a.c.a(Unknown Source)
at com.meizu.cloud.pushsdk.a.c.(Unknown Source)
at com.meizu.cloud.pushsdk.a.c.(Unknown Source)
at com.meizu.cloud.pushsdk.a.c$a.a(Unknown Source)
at com.meizu.cloud.pushsdk.a.a.c(Unknown Source)
at com.meizu.cloud.pushsdk.a.a.a(Unknown Source)
at com.meizu.cloud.pushsdk.a.a$1.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
at java.lang.Thread.run(Thread.java:856)

AndroidManifest少了配置项

由于停用了jcenter,demo中是以jar的方式引入sdk。但是demo的AndroidManifest.xml中少了使用jar引入需要的两个配置项目:

 <!-- 必要配置,提高push消息送达率 -->
        <service
            android:name="com.meizu.cloud.pushsdk.NotificationService"
            android:exported="true"/>

        <!-- 必要配置,pushSDK内部组件 -->
        <receiver android:name="com.meizu.cloud.pushsdk.SystemReceiver" >
            <intent-filter>
                <action android:name="com.meizu.cloud.pushservice.action.PUSH_SERVICE_START"/>
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </receiver>

在m1 note(Flyme 5.1.11.1A)上kill掉app就无法收到通知栏或者透传消息,加上这两项以后问题解决。

修改 compile 依赖

既然已经在「重大说明」里面提到要改成 com.meizu.flyme.internet:push-internal:3.4.2@aar,
那么 在 「3.1 pushSDK引用配置说明」 里面也适当改一下吧

提供清除通知栏的方法

有一些场景,用户可能没有通过点击push进入app,而是直接打开app。这种时候业务希望能清除这个app的通知。

接入推送收不到信息

机型:魅族 M5s
版本号:flyme 6.3.0.2A
客户端接入魅族推送,在后台测试推送,手机接受不到
这是我log里面的pushid。

但是我在问题排查的时候显示这个pushid未注册,

同时,我在数据统计处发现之前推送的信息不见了

有些权限貌似没给的话 会报错

java.lang.SecurityException: Neither user 10130 nor current process has android.permission.READ_PHONE_STATE.
我的设备一直没注册上,怀疑跟这次 crash 有关。

我看了用户 push 后台 貌似只有在 IMEI 查询 PushId 的时候才能用到。但是 IMEI 貌似在 Android 7.0 开始 就返回定值。所以 IMEI 并不可靠,能不能不要获取 IMEI, 或者是 在 判断没有这个权限的时候 不操作某些操作,至少不要影响注册流程,你说对吧。

3.6.3版本在小米机型上出现兼容性问题

问题描述: 已经调用魅族订阅的接口MzSystemUtils.isBrandMeizu(context), 但是还是在小米机型上出现crash

堆栈信息:
java.lang.ClassCastException: Couldn't convert result of type java.lang.String to android.location.Location
at android.location.LocationManager.getLastKnownLocation()
at com.meizu.cloud.pushsdk.c.f.e.c(Unknown Source)
at com.meizu.cloud.pushsdk.a.c.d(Unknown Source)
at com.meizu.cloud.pushsdk.a.c.a(Unknown Source)
at com.meizu.cloud.pushsdk.a.c.(Unknown Source)
at com.meizu.cloud.pushsdk.a.c.(Unknown Source)
at com.meizu.cloud.pushsdk.a.c$a.a(Unknown Source)
at com.meizu.cloud.pushsdk.a.a.c(Unknown Source)
at com.meizu.cloud.pushsdk.a.a.a(Unknown Source)
at com.meizu.cloud.pushsdk.a.a$1.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)
Back traces end.

运行时提示如下 继承的广播接收器not found0

05-17 20:29:32.640 295-11085/? E/NuPlayer: onScanSources
05-17 20:29:32.643 295-11090/? E/OMXNodeInstance: getParameter(6a:Meizu.MP3, ??(0x7f200406)) ERROR: UnsupportedIndex(0x8000101a)
05-17 20:29:32.669 10982-10982/com.tr E/GinTong: 初始化魅族push
05-17 20:29:32.731 10982-11093/com.tr E/Strategy: isBrandMeizu true
05-17 20:29:33.208 10982-10982/com.tr E/GinTong: com.tr.ui.user.SplashActivity
05-17 20:29:33.208 10982-10982/com.tr E/EBaseActivity: com.tr.ui.user.SplashActivity
05-17 20:29:33.555 10982-10982/com.tr E/[0]: com.tr.ui.user.SplashActivity@2b82bb75
05-17 20:29:33.556 10982-10982/com.tr E/MPlugin: Unsupported class: com.mediatek.common.telephony.IOnlyOwnerSimSupport
05-17 20:29:33.563 274-791/? E/Vold: Failed to find mounted volume for /storage/sdcard1/Android/data/com.tr/files/apk/
05-17 20:29:33.866 10982-11098/com.tr E/GinTong: DXHttpAgent==>sendMessage==>java.net.UnknownHostException: Unable to resolve host "test.online.gintong.com": No address associated with hostname
05-17 20:29:33.867 10982-11098/com.tr E/GinTong: errCode,-1,errMessage :
errCode,-1,errMessage : 网络不给力...
05-17 20:29:33.867 10982-11098/com.tr E/print_network_status: [-1, ]
05-17 20:29:34.000 10982-11099/com.tr E/GED: Failed to get GED Log Buf, err(0)
05-17 20:29:34.084 851-1508/? E/BluetoothManagerService: getAddress: Return from mName = 魅蓝 note 2
05-17 20:29:34.453 10982-11150/com.tr E/NativeCrypto: ssl=0xdf62e400 cert_verify_callback x509_store_ctx=0xd9789e90 arg=0x0
ssl=0xdf62e400 cert_verify_callback calling verifyCertificateChain authMethod=ECDHE_RSA
05-17 20:29:34.696 10982-11163/com.tr E/SystemReceiver: cloud pushService start
05-17 20:29:34.783 10982-11163/com.tr E/QuickTracker: current statics domain is push-statics.meizu.com
05-17 20:29:34.819 10982-10982/com.tr E/JavaBinder: !!! FAILED BINDER TRANSACTION !!!
05-17 20:29:34.949 10982-11093/com.tr E/PushTracker->a: pool-8-thread-1|Emitter database empty: 1
05-17 20:29:35.077 11171-11185/? E/art: Failed sending reply to debugger: Broken pipe
05-17 20:29:35.137 10982-11150/com.tr E/NativeCrypto: ssl=0xdf62fe00 cert_verify_callback x509_store_ctx=0xd9789620 arg=0x0
ssl=0xdf62fe00 cert_verify_callback calling verifyCertificateChain authMethod=ECDHE_RSA
05-17 20:29:35.246 10982-11150/com.tr E/CellLocation: create GsmCellLocation
05-17 20:29:35.671 11035-11198/com.tr:remote E/MPlugin: Unsupported class: com.mediatek.common.telephony.IOnlyOwnerSimSupport
05-17 20:29:35.685 11035-11198/com.tr:remote E/CellLocation: create GsmCellLocation
05-17 20:29:35.916 10982-11166/com.tr E/NativeCrypto: ssl=0xef044800 cert_verify_callback x509_store_ctx=0xd12cc1f0 arg=0x0
05-17 20:29:35.917 10982-11166/com.tr E/NativeCrypto: ssl=0xef044800 cert_verify_callback calling verifyCertificateChain authMethod=ECDHE_RSA
05-17 20:29:35.952 10982-11093/com.tr E/PushTracker->a: pool-8-thread-1|Emitter database empty: 2
05-17 20:29:36.015 10982-10982/com.tr E/MobclickAgent: onPause called before onResume
05-17 20:29:36.029 10982-10982/com.tr A/MobUncaughtExceptionHandler: Unable to instantiate receiver push.MeiZuPushReceiver: java.lang.ClassNotFoundException: Didn't find class "push.MeiZuPushReceiver" on path: DexPathList[[zip file "/data/app/com.tr-1/base.apk", zip file "/data/app/com.tr-1/split_lib_dependencies_apk.apk", zip file "/data/app/com.tr-1/split_lib_slice_0_apk.apk", zip file "/data/app/com.tr-1/split_lib_slice_1_apk.apk", zip file "/data/app/com.tr-1/split_lib_slice_2_apk.apk", zip file "/data/app/com.tr-1/split_lib_slice_3_apk.apk", zip file "/data/app/com.tr-1/split_lib_slice_4_apk.apk", zip file "/data/app/com.tr-1/split_lib_slice_5_apk.apk", zip file "/data/app/com.tr-1/split_lib_slice_6_apk.apk", zip file "/data/app/com.tr-1/split_lib_slice_7_apk.apk", zip file "/data/app/com.tr-1/split_lib_slice_8_apk.apk", zip file "/data/app/com.tr-1/split_lib_slice_9_apk.apk"],nativeLibraryDirectories=[/data/app/com.tr-1/lib/arm, /vendor/lib, /system/lib]]
java.lang.RuntimeException: Unable to instantiate receiver push.MeiZuPushReceiver: java.lang.ClassNotFoundException: Didn't find class "push.MeiZuPushReceiver" on path: DexPathList[[zip file "/data/app/com.tr-1/base.apk", zip file "/data/app/com.tr-1/split_lib_dependencies_apk.apk", zip file "/data/app/com.tr-1/split_lib_slice_0_apk.apk", zip file "/data/app/com.tr-1/split_lib_slice_1_apk.apk", zip file "/data/app/com.tr-1/split_lib_slice_2_apk.apk", zip file "/data/app/com.tr-1/split_lib_slice_3_apk.apk", zip file "/data/app/com.tr-1/split_lib_slice_4_apk.apk", zip file "/data/app/com.tr-1/split_lib_slice_5_apk.apk", zip file "/data/app/com.tr-1/split_lib_slice_6_apk.apk", zip file "/data/app/com.tr-1/split_lib_slice_7_apk.apk", zip file "/data/app/com.tr-1/split_lib_slice_8_apk.apk", zip file "/data/app/com.tr-1/split_lib_slice_9_apk.apk"],nativeLibraryDirectories=[/data/app/com.tr-1/lib/arm, /vendor/lib, /system/lib]]
at android.app.ActivityThread.handleReceiver(ActivityThread.java:2950)
at android.app.ActivityThread.access$1800(ActivityThread.java:187)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1666)
at android.os.Handler.dispatchMessage(Handler.java:111)
at android.os.Looper.loop(Looper.java:194)
at android.app.ActivityThread.main(ActivityThread.java:5869)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1020)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:815)
Caused by: java.lang.ClassNotFoundException: Didn't find class "push.MeiZuPushReceiver" on path: DexPathList[[zip file "/data/app/com.tr-1/base.apk", zip file "/data/app/com.tr-1/split_lib_dependencies_apk.apk", zip file "/data/app/com.tr-1/split_lib_slice_0_apk.apk", zip file "/data/app/com.tr-1/split_lib_slice_1_apk.apk", zip file "/data/app/com.tr-1/split_lib_slice_2_apk.apk", zip file "/data/app/com.tr-1/split_lib_slice_3_apk.apk", zip file "/data/app/com.tr-1/split_lib_slice_4_apk.apk", zip file "/data/app/com.tr-1/split_lib_slice_5_apk.apk", zip file "/data/app/com.tr-1/split_lib_slice_6_apk.apk", zip file "/data/app/com.tr-1/split_lib_slice_7_apk.apk", zip file "/data/app/com.tr-1/split_lib_slice_8_apk.apk", zip file "/data/app/com.tr-1/split_lib_slice_9_apk.apk"],nativeLibraryDirectories=[/data/app/com.tr-1/lib/arm, /vendor/lib, /system/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
at android.app.ActivityThread.handleReceiver(ActivityThread.java:2945)
at android.app.ActivityThread.access$1800(ActivityThread.java:187) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1666) 
at android.os.Handler.dispatchMessage(Handler.java:111) 
at android.os.Looper.loop(Looper.java:194) 
at android.app.ActivityThread.main(ActivityThread.java:5869) 
at java.lang.reflect.Method.invoke(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:372) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1020) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:815) 
Suppressed: java.lang.ClassNotFoundException: push.MeiZuPushReceiver
at java.lang.Class.classForName(Native Method)
at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
... 11 more
Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available
05-17 20:29:36.125 295-986/? E/DrmMtkUtil/DrmUtil: checkDcf: not dcf type, dcf version value [80]
05-17 20:29:36.125 295-986/? E/Cta5File: Cta5File::isCta5NormalFile false, bad magic:PK���
Cta5File::isCta5MultimediaFile false, bad magic:�
05-17 20:29:36.125 295-986/? E/DrmMtkUtil/DrmUtil: checkDcf: not dcf type, dcf version value [80]
05-17 20:29:36.134 294-294/? E/DrmCtaPlugIn: [ERROR]onOpenDecryptSession - The key is not set by user
05-17 20:29:36.134 294-294/? E/DrmMtkUtil/DrmUtil: parseDcf: not dcf type, dcf version value [80]
05-17 20:29:36.134 294-294/? E/DrmMtkPlugIn: onOpenDecryptSession() : failed to parse dcf file.
05-17 20:29:36.282 295-11237/? E/NuPlayer: onScanSources
05-17 20:29:36.286 295-11246/? E/OMXNodeInstance: getParameter(6b:Meizu.MP3, ??(0x7f200406)) ERROR: UnsupportedIndex(0x8000101a)
05-17 20:29:36.295 11035-11227/com.tr:remote E/NativeCrypto: ssl=0xef041400 cert_verify_callback x509_store_ctx=0xdb947620 arg=0x0
ssl=0xef041400 cert_verify_callback calling verifyCertificateChain authMethod=ECDHE_RSA
05-17 20:29:36.328 851-1091/? E/JavaBinder: !!! FAILED BINDER TRANSACTION !!!
05-17 20:29:36.330 851-1091/? E/JavaBinder: !!! FAILED BINDER TRANSACTION !!!
05-17 20:29:36.475 11035-11227/com.tr:remote E/CellLocation: create GsmCellLocation
05-17 20:29:37.143 6473-11279/? E/MzUpdateComponent:2.4.6: ServerManager --> checkUpdateMulti: Illegal Plugin check params !
05-17 20:29:37.434 11108-11289/com.tr:pushcore E/MPlugin: Unsupported class: com.mediatek.common.telephony.IOnlyOwnerSimSupport
05-17 20:29:37.450 11108-11289/com.tr:pushcore E/CellLocation: create GsmCellLocation
05-17 20:29:37.468 11108-11288/com.tr:pushcore E/NativeCrypto: ssl=0xf4d14600 cert_verify_callback x509_store_ctx=0xdcf96d50 arg=0x0
ssl=0xf4d14600 cert_verify_callback calling verifyCertificateChain authMethod=ECDHE_RSA
05-17 20:29:37.525 11108-11108/? E/JavaBinder: !!! FAILED BINDER TRANSACTION !!!
05-17 20:29:37.640 851-1084/? E/BluetoothManagerService: getAddress: Return from mName = 魅蓝 note 2
05-17 20:29:38.497 11171-11303/com.tr:pushservice E/MPlugin: Unsupported class: com.mediatek.common.telephony.IOnlyOwnerSimSupport
05-17 20:29:38.519 11171-11303/com.tr:pushservice E/CellLocation: create GsmCellLocation
05-17 20:29:38.544 11171-11302/com.tr:pushservice E/NativeCrypto: ssl=0xf4d14200 cert_verify_callback x509_store_ctx=0xdcd83d50 arg=0x0
ssl=0xf4d14200 cert_verify_callback calling verifyCertificateChain authMethod=ECDHE_RSA
05-17 20:29:38.629 11171-11171/? E/JavaBinder: !!! FAILED BINDER TRANSACTION !!!
05-17 20:29:39.591 274-791/? E/Vold: Failed to find mounted volume for /storage/sdcard1/Android/data/com.tr/files/
05-17 20:29:40.035 11251-11314/com.tr E/MPlugin: Unsupported class: com.mediatek.common.telephony.IOnlyOwnerSimSupport
05-17 20:29:40.060 11251-11314/com.tr E/CellLocation: create GsmCellLocation
05-17 20:29:40.505 295-987/? E/DrmMtkUtil/DrmUtil: checkDcf: not dcf type, dcf version value [80]
05-17 20:29:40.505 295-987/? E/Cta5File: Cta5File::isCta5NormalFile false, bad magic:PK���
Cta5File::isCta5MultimediaFile false, bad magic:�

签名认证失败是什么原因

getTaskId()接口返回:
{"code":"1006","message":"签名认证失败","value":"","redirect":""}
请问可能是app_secret不对, 还是md5加密不对, 还是有其他的原因?
能给个传参的模板不, 我对接口文档里面写的sign传参不是太理解

在消息到来时,如何禁用,原生的状态栏

由于在消息到来的时候我们app有自己的消息提醒,如果加上原生的,就会出现,两个消息提醒,一个是魅族的,一个是我们自定义的,如何禁用魅族的用自定义的呢?
在文档上没有找到相关信息

关于在 R8 optimize 之后反序列化失败的问题

R8 早已在 android gradle plugin 3.4.x 版本(现最新为 3.6.x)上默认启用,目前继续因为使用魅族推送 SDK 而让整个项目弃用 R8 也不是长久之计,请问团队目前有计划解决 XXXStatus 类反序列化的历史遗留问题吗?或是目前有什么除了 disable R8 以外的 workaround 吗?

通知栏小图标改为选填

现在新版的sdk基本上是强制要求要放置small_icon资源,但是很多使用方都是把不同厂商的几个push sdk封装成统一的组件来使用,组件无法访问外部的R.drawable。所以希望通知栏小图标如果不设置的话还是能展示旧版那个默认的图标。

魅族note3手机不走回调onRegisterStatus

使用当前demo的默认包名、appId和appKey。

运行app成,点击平台注册,PushMsgReceiver的onRegisterStatus回调没走

点击打开通知,提示pushId = null。

测试机信息

MEIZU note3
android:7.0
版本号:Flyme 6.3.0.2A

运行时报错,(没有采用插件式)

05-23 13:56:36.201 10107-10107/? E/memtrack: Couldn't load memtrack module (No such file or directory)
05-23 13:56:36.201 10107-10107/? E/android.os.Debug: failed to load memtrack module: -2
05-23 13:56:37.138 10127-10127/? E/memtrack: Couldn't load memtrack module (No such file or directory)
05-23 13:56:37.138 10127-10127/? E/android.os.Debug: failed to load memtrack module: -2
05-23 13:56:45.994 10145-10145/? E/memtrack: Couldn't load memtrack module (No such file or directory)
05-23 13:56:45.994 10145-10145/? E/android.os.Debug: failed to load memtrack module: -2
05-23 13:56:46.625 10162-10162/? E/memtrack: Couldn't load memtrack module (No such file or directory)
05-23 13:56:46.625 10162-10162/? E/android.os.Debug: failed to load memtrack module: -2
05-23 13:56:52.383 10180-10180/? E/memtrack: Couldn't load memtrack module (No such file or directory)
05-23 13:56:52.383 10180-10180/? E/android.os.Debug: failed to load memtrack module: -2
05-23 13:57:03.941 7043-7043/? E/FloatWidget: open
05-23 13:57:04.295 7043-7043/? E/FloatWidget: innerOpen
refreshContent
05-23 13:57:05.595 10231-10231/? E/memtrack: Couldn't load memtrack module (No such file or directory)
05-23 13:57:05.596 10231-10231/? E/android.os.Debug: failed to load memtrack module: -2
05-23 13:57:05.680 7043-7043/? E/FloatWidget: close
05-23 13:57:05.987 7043-7043/? E/FloatWidget: innerClose
05-23 13:57:06.755 1054-1054/? E/SystemUIMobEventUtils: packageName cannot be null and null-string, or packageName is filter pkg
05-23 13:57:07.970 5371-10273/? E/MzUpdateComponent:2.4.6: ServerManager --> checkUpdateMulti: Illegal Plugin check params !
05-23 13:57:08.084 5371-8508/? E/GslbCore: java.io.IOException: Hostname 'servicecut.meizu.com' was not verified
at com.android.okhttp.Connection.upgradeToTls(Connection.java:205)
at com.android.okhttp.Connection.connect(Connection.java:155)
at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:282)
at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:216)
at com.android.okhttp.internal.http.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:391)
at com.android.okhttp.internal.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:106)
at com.android.okhttp.internal.http.HttpURLConnectionImpl.getOutputStream(HttpURLConnectionImpl.java:217)
at com.android.okhttp.internal.http.DelegatingHttpsURLConnection.getOutputStream(DelegatingHttpsURLConnection.java:218)
at com.android.okhttp.internal.http.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:25)
at com.meizu.gslb2.x.a(SourceFile:77)
at com.meizu.gslb2.t.a(SourceFile:87)
at com.meizu.gslb2.b$a.a(SourceFile:152)
at com.meizu.gslb2.b$a.run(SourceFile:191)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)
05-23 13:57:08.089 5371-8508/? E/GslbCore: msg:convert api-app.meizu.com form server,throwable:Hostname 'servicecut.meizu.com' was not verified
05-23 13:57:09.014 275-791/? E/Vold: Failed to find mounted volume for /storage/sdcard1/Android/data/com.tr/files/
05-23 13:57:09.232 10248-10248/? E/JavaBinder: !!! FAILED BINDER TRANSACTION !!!
05-23 13:57:28.587 275-791/? E/Vold: Failed to find mounted volume for /storage/sdcard1/Android/data/com.meizu.media.video/cache/
05-23 13:57:28.592 275-791/? E/Vold: Failed to find mounted volume for /storage/sdcard1/Android/data/com.meizu.media.video/files/
05-23 13:57:28.810 10283-10318/? E/MzUpdateComponent:2.4.7: Plugin:check interval interrupt
05-23 13:57:28.810 10283-10312/? E/AdLog-Host: update fail: java.lang.Exception: no plugin update info, code=0
05-23 13:57:28.815 10283-10306/? E/SQLiteLog: (283) recovered 8 frames from WAL file /data/data/com.meizu.media.video/databases/statsapp_v3.db-wal
05-23 13:57:28.834 10283-10324/? E/WXSDKEngine: WXEnvironment.sApplication is null
05-23 13:57:28.874 10283-10325/? E/linker: "libweexjsb.so": ignoring 2-entry DT_PREINIT_ARRAY in shared library!
05-23 13:57:29.014 275-791/? E/Vold: Failed to find mounted volume for /storage/sdcard1/Android/data/com.meizu.media.video/cache/
05-23 13:57:29.060 10283-10306/? E/MPlugin: Unsupported class: com.mediatek.common.telephony.IOnlyOwnerSimSupport
05-23 13:57:29.134 275-791/? E/Vold: Failed to find mounted volume for /storage/sdcard1/Android/data/com.meizu.media.video/cache/
05-23 13:57:29.230 2592-5304/? E/Parcel: Class not found when unmarshalling: com.meizu.cloud.pushsdk.handler.MessageV3
java.lang.ClassNotFoundException: com.meizu.cloud.pushsdk.handler.MessageV3
at java.lang.Class.classForName(Native Method)
at java.lang.Class.forName(Class.java:318)
at java.lang.Class.forName(Class.java:276)
at android.os.Parcel.readParcelableCreator(Parcel.java:2281)
at android.os.Parcel.readParcelable(Parcel.java:2245)
at android.os.Parcel.readValue(Parcel.java:2152)
at android.os.Parcel.readArrayMapInternal(Parcel.java:2485)
at android.os.BaseBundle.unparcel(BaseBundle.java:221)
at android.os.BaseBundle.keySet(BaseBundle.java:321)
at com.wandoujia.nisdk.core.util.IntentUtil.getExtrasSafe(IntentUtil.java:128)
at com.wandoujia.nisdk.core.model.converter.SystemNotificationConverter.toIntentPackage(SystemNotificationConverter.java:243)
at com.wandoujia.nisdk.core.model.converter.SystemNotificationConverter.toPendingIntentPackage(SystemNotificationConverter.java:215)
at com.wandoujia.nisdk.core.model.converter.SystemNotificationConverter.convert(SystemNotificationConverter.java:49)
at com.wandoujia.nisdk.core.NIFilter.filter(NIFilter.java:92)
at com.meizu.notification.NisNotificationFilterImpl.filter(NisNotificationFilterImpl.java:122)
at com.meizu.notification.FlymeNotificationFilterService$2.interceptNotification(FlymeNotificationFilterService.java:115)
at meizu.notification.INotificationFilterService$Stub.onTransact(INotificationFilterService.java:57)
at android.os.Binder.execTransact(Binder.java:454)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.meizu.cloud.pushsdk.handler.MessageV3" on path: DexPathList[[directory "."],nativeLibraryDirectories=[/vendor/lib64, /system/lib64]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
at java.lang.Class.classForName(Native Method) 
at java.lang.Class.forName(Class.java:318) 
at java.lang.Class.forName(Class.java:276) 
at android.os.Parcel.readParcelableCreator(Parcel.java:2281) 
at android.os.Parcel.readParcelable(Parcel.java:2245) 
at android.os.Parcel.readValue(Parcel.java:2152) 
at android.os.Parcel.readArrayMapInternal(Parcel.java:2485) 
at android.os.BaseBundle.unparcel(BaseBundle.java:221) 
at android.os.BaseBundle.keySet(BaseBundle.java:321) 
at com.wandoujia.nisdk.core.util.IntentUtil.getExtrasSafe(IntentUtil.java:128) 
at com.wandoujia.nisdk.core.model.converter.SystemNotificationConverter.toIntentPackage(SystemNotificationConverter.java:243) 
at com.wandoujia.nisdk.core.model.converter.SystemNotificationConverter.toPendingIntentPackage(SystemNotificationConverter.java:215) 
at com.wandoujia.nisdk.core.model.converter.SystemNotificationConverter.convert(SystemNotificationConverter.java:49) 
at com.wandoujia.nisdk.core.NIFilter.filter(NIFilter.java:92) 
at com.meizu.notification.NisNotificationFilterImpl.filter(NisNotificationFilterImpl.java:122) 
at com.meizu.notification.FlymeNotificationFilterService$2.interceptNotification(FlymeNotificationFilterService.java:115) 
at meizu.notification.INotificationFilterService$Stub.onTransact(INotificationFilterService.java:57) 
at android.os.Binder.execTransact(Binder.java:454) 
Suppressed: java.lang.ClassNotFoundException: com.meizu.cloud.pushsdk.handler.MessageV3
at java.lang.Class.classForName(Native Method)
at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
... 19 more
Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available
05-23 13:57:29.306 302-1128/? E/DrmMtkUtil/DrmUtil: checkDcf: not dcf type, dcf version value [79]
05-23 13:57:29.306 302-1128/? E/Cta5File: Cta5File::isCta5NormalFile false, bad magic:OggS
Cta5File::isCta5MultimediaFile false, bad magic:��������$7�������
05-23 13:57:29.306 302-1128/? E/DrmMtkUtil/DrmUtil: checkDcf: not dcf type, dcf version value [79]
05-23 13:57:29.306 302-1128/? E/Cta5File: Cta5File::isCta5NormalFile false, bad magic:OggS
Cta5File::isCta5MultimediaFile false, bad magic:��������$7������'

java.lang.NoSuchMethodError: setVisibility

java.lang.NoSuchMethodError: setVisibility
              at com.meizu.cloud.pushsdk.notification.a.a(SourceFile:141)
              at com.meizu.cloud.pushsdk.notification.a.a(SourceFile:84)
              at com.meizu.cloud.pushsdk.notification.a.c(SourceFile:242)
              at com.meizu.cloud.pushsdk.handler.a.c.a(SourceFile:67)
              at com.meizu.cloud.pushsdk.handler.a.c.a(SourceFile:40)
              at com.meizu.cloud.pushsdk.handler.a.a.b(SourceFile:180)
              at com.meizu.cloud.pushsdk.PushMessageProxy.processMessage(SourceFile:175)
              at com.meizu.cloud.pushsdk.MzPushMessageReceiver.onHandleIntent(SourceFile:40)
              at com.meizu.cloud.pushsdk.common.base.WorkReceiver$1.run(SourceFile:20)
              at android.os.Handler.handleCallback(Handler.java:808)
             at android.os.Handler.dispatchMessage(Handler.java:103)
             at android.os.Looper.loop(Looper.java:193)
             at android.os.HandlerThread.run(HandlerThread.java:61)

注册推送时报空指针错误

通过官方demo和文档对比之后,发现区别是我在Application中调用的注册,而demo中是在Activity中调用的。

Caused by: java.lang.NullPointerException
at com.meizu.cloud.pushsdk.common.b.h.a(SourceFile:79)
at com.meizu.cloud.pushsdk.platform.api.PushAPI.(SourceFile:45)
at com.meizu.cloud.pushsdk.platform.api.PushPlatformManager.(SourceFile:36)
at com.meizu.cloud.pushsdk.platform.api.PushPlatformManager.getInstance(SourceFile:63)
at com.meizu.cloud.pushsdk.PushManager.register(SourceFile:140)
at com.tjzqht.troila.zf.MyApplication.StartMeiZuPush(MyApplication.java:50)
at com.tjzqht.troila.zf.MyApplication.onCreate(MyApplication.java:44)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1007)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4379)
at android.app.ActivityThread.access$1500(ActivityThread.java:141) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1272) 
at android.os.Handler.dispatchMessage(Handler.java:102) 

集成魅族推送魅族手机无法收到

集成魅族推送魅族手机无法收到,Log信息:

05-03 14:30:30.255 4682-5029/ E/ReflectMethod: invoke
java.lang.NoSuchMethodException: install [class android.net.SSLSessionCache, class javax.net.ssl.SSLContext]
at java.lang.Class.getConstructorOrMethod(Class.java:472)
at java.lang.Class.getMethod(Class.java:857)
at com.meizu.cloud.pushsdk.base.a.c.a(Unknown Source)
at com.meizu.cloud.pushsdk.b.h.a.(Unknown Source)
at com.meizu.cloud.pushsdk.b.c.e.(Unknown Source)
at com.meizu.cloud.pushsdk.c.b.c$a.(Unknown Source)
at com.meizu.cloud.pushsdk.c.a.b(Unknown Source)
at com.meizu.cloud.pushsdk.c.a.a(Unknown Source)
at com.meizu.cloud.pushsdk.SystemReceiver.onHandleIntent(Unknown Source)
at com.meizu.cloud.pushsdk.base.IntentReceiver$1.run(Unknown Source)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.os.HandlerThread.run(HandlerThread.java:61)

Flyme版本:Flyme OS 4.2.8.2A

魅族后台查询设备不在线问题

Flyme6.0,推送测着测着,发现收不到消息了。然后经过排查,在魅族后台上面的问题排查页面里面查询到设备不在线。之前有和魅族技术交流过,给出的方案是重启手机。当然这次重启手机,手机就可以收到了推送。
我想问一下,这种设备不在线的概率有多大,我们应用用户量还是很大的,希望可以给一点数据支持,也好给测试交差。

关于在不同系统版本上通知点击无法唤起应用问题反馈

问题app,国美APP

通知点击代码实现
@OverRide
public void onNotificationClicked(final Context context, MzPushMessage mzPushMessage) {
mContext = context;
Logger.i(TAG, "onNotificationClicked title "+mzPushMessage.getTitle() + "content "
+ mzPushMessage.getContent() + " selfDefineContentString " + mzPushMessage.getSelfDefineContentString()+" notifyId "+mzPushMessage.getNotifyId());
String contextJson = mzPushMessage.getSelfDefineContentString();
Message msg = Message.obtain();
msg.obj = contextJson;
msg.what = 23;
Handler handler = new Handler(Looper.getMainLooper()) {
@OverRide
public void handleMessage(Message msg) {
String message = (String) msg.obj;
Intent intent = parseBody(mContext, message);
if (intent != null) {
intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP| Intent.FLAG_ACTIVITY_NEW_TASK);
(mContext).startActivity(intent);
}
}
};
handler.sendMessage(msg);
}

使用push sdk版本 3.8.1

目前测试三款手机发现以下规律

魅族pro5 Android版本 7.0 版本号:Flyme7.2.0.0A
应用在前台 未锁屏状态 点击通知正常跳转
应用在前台 锁屏状态 点击通知不能正常跳转 点击后消息消失,但是打日志发现需要开启的activity的onCreate已经执行
应用开启置于后台 未锁屏状态 点击通知正常跳转
应用开启置于后台 锁屏状态 点击通知不能正常跳转 点击后消息消失,但是打日志发现需要开启的activity的onCreate已经执行
应用未开启 未锁屏状态 点击通知正常跳转
应用未开启 锁屏状态 点击通知正常跳转

魅族pro6 android版本 7.1.1 版本号:Flyme6.3.0.2A
应用在前台 未锁屏状态 点击通知正常跳转
应用在前台 锁屏状态 点击通知正常跳转
应用开启置于后台 未锁屏状态 点击通知正常跳转
应用开启置于后台 锁屏状态 点击通知正常跳转
应用未开启 未锁屏状态 点击通知正常跳转
应用未开启 锁屏状态 点击通知正常跳转

魅族pro7-s Android版本 7.0 版本号:Flyme7.2.0.0A
应用在前台 未锁屏状态 点击通知正常跳转
应用在前台 锁屏状态 点击通知不能正常跳转 点击后消息消失,但是打日志发现需要开启的activity的onCreate已经执行
应用开启置于后台 未锁屏状态 点击通知正常跳转
应用开启置于后台 锁屏状态 点击通知不能正常跳转 点击后消息消失,但是打日志发现需要开启的activity的onCreate已经执行
应用未开启 未锁屏状态 点击通知正常跳转
应用未开启 锁屏状态 点击通知正常跳转

请问这个情况是我们自己代码实现问题,还是不同版本系统问题,需要怎么做才能保证正常跳转?

pushId总是空

push Id 总是空,平台上测试消息 onReceive(Context context, Intent intent) 能收到消息,但是总是没有通知栏显示。

魅族后台查询不到推送记录了

8月31号在测试APP中集成了魅族推送,并通过魅族推送后台进行了十来条单播测试,均到达设备。
今天查询8月31号推送记录,显示为空。新的推送测试也无法到达测试APP。

魅族MX3 M351 收不到推送

注册成功并收到的pushID,但是推送就是收不到,
{code='200', message=''}pushId='UU34b4f7e565f5e540a74497d4859636706424c7a5a53', Become invalid after 604800 seconds }
按文档上添加了对应的权限,以及action

    <!-- 兼容flyme5.0以下版本-->
    <uses-permission android:name="com.meizu.flyme.push.permission.RECEIVE" />
    <uses-permission android:name="${applicationId}.push.permission.MESSAGE" />
    <!--  兼容flyme3.0配置权限-->
    <uses-permission android:name="com.meizu.c2dm.permission.RECEIVE" />
    <uses-permission android:name="${applicationId}.permission.C2D_MESSAGE" />

    <permission
        android:name=${applicationId}.push.permission.MESSAGE"
        android:protectionLevel="signature" />
    <permission
        android:name="${applicationId}.permission.C2D_MESSAGE"
        android:protectionLevel="signature" />
        <receiver android:name=".pushserver.meizu.MeiZuPushMsgReceiver">
            <intent-filter>
                <!-- 接收push消息 -->
                <action android:name="com.meizu.flyme.push.intent.MESSAGE" />
                <!-- 接收register消息-->
                <action android:name="com.meizu.flyme.push.intent.REGISTER.FEEDBACK" />
                <!-- 接收unregister消息-->
                <action android:name="com.meizu.flyme.push.intent.UNREGISTER.FEEDBACK" />
                <!-- 兼容低版本Flyme3推送服务配置 -->
                <action android:name="com.meizu.c2dm.intent.REGISTRATION" />
                <action android:name="com.meizu.c2dm.intent.RECEIVE" />

                <category android:name="${applicationId}" />
            </intent-filter>
        </receiver>

register成功 pushid返回

register成功了 pushid返回 用魅族推送平台欲推送 提示非法pushid
问题排查模块排查结果
pushid提示非法
imei提示pushId未注册

如果没有注册成功 那么pushId就不会返回才对
求教

手机接收不到推送

接入了SDK,也注册成功了,返回了pushid。后台推送一直收不到,网络正常

魅族离线推送标题长度

我们测试发现,魅族的推送包体没有达到4k但是也推送不成功,华为推送包体2k华为能推送到,但是魅族推送不到,只要标题断一下就能推送到,但是标题没超过32个字符。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.