• Android Studio 配置JPush


    1.在JPush官方下载 JPush SDK(jpush-android-arm-2.1.0.zip),我下载的是2.1.0;

    2.解压下载好的压缩包(jpush-android-arm-2.1.0.zip),并复制libs/jpush-android-2.1.0.jar 到工程 libs/ 目录下,再复制libs/armeabi/libjpush210.so 到工程 libs/armeabi 目录下(如果没有armeabi文件夹自己新建就可以了,如果libs下还有armeabi-v7a文件夹,则需要把libjpush210.so复制到此文件夹下);

    3.在AndroidManifest.xml文件中配置权限:

        <!-- 这些权限都需要加入到Manifest中 -->
        <permission android:name="自己的包.jpushdemo.permission.JPUSH_MESSAGE" android:protectionLevel="signature" /> 
        <uses-permission android:name="自己的包.jpushdemo.permission.JPUSH_MESSAGE" /> 
        <uses-permission android:name="android.permission.RECEIVE_USER_PRESENT" />
        <uses-permission android:name="android.permission.INTERNET" />
        <uses-permission android:name="android.permission.WAKE_LOCK" />
        <uses-permission android:name="android.permission.READ_PHONE_STATE" />
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
        <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
        <uses-permission android:name="android.permission.VIBRATE" />
        <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
        <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
        <uses-permission android:name="android.permission.WRITE_SETTINGS" /> 
        <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
        <uses-permission android:name="android.permission.ACCESS_COARSE_UPDATES" />
        <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
        <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
        <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
        <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
        <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />


    <!-- 需要在Application中注册服务和广播接收器 --> <service android:name="cn.jpush.android.service.PushService" android:enabled="true" android:exported="false" > <intent-filter> <action android:name="cn.jpush.android.intent.REGISTER" /> <action android:name="cn.jpush.android.intent.REPORT" /> <action android:name="cn.jpush.android.intent.PushService" /> <action android:name="cn.jpush.android.intent.PUSH_TIME" /> </intent-filter> </service> <receiver android:name="cn.jpush.android.service.PushReceiver" android:enabled="true" > <intent-filter android:priority="1000"> <action android:name="cn.jpush.android.intent.NOTIFICATION_RECEIVED_PROXY" /> <category android:name="johntest.org.hl.john.johntest.jpushdemo" /> </intent-filter> <intent-filter> <action android:name="android.intent.action.USER_PRESENT" /> <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> </intent-filter> <intent-filter> <action android:name="android.intent.action.PACKAGE_ADDED" /> <action android:name="android.intent.action.PACKAGE_REMOVED" /> <data android:scheme="自己的包.jpushdemo" /> </intent-filter> </receiver> <activity android:name="cn.jpush.android.ui.PushActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar" android:configChanges="orientation|keyboardHidden" > <intent-filter> <action android:name="cn.jpush.android.ui.PushActivity" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="自己的包.jpushdemo" /> </intent-filter> </activity>
            <service
                android:name="cn.jpush.android.service.DownloadService"
                android:enabled="true"
                android:exported="false" >
            </service>
            <receiver android:name="cn.jpush.android.service.AlarmReceiver" />
            <!-- JPUSH_CHANNEL 是为了方便开发者统计APK分发渠道。-->
            <meta-data android:name="JPUSH_CHANNEL" android:value="developer-default"/>
            <meta-data android:name="JPUSH_APPKEY" android:value="自己的AppKey"/>
    
    

    Manifest配置好了(自己的包是自己的工程的包,自己的AppKey是从JPush上面新建项目而来的,自己可在JPush官网注册登录创建一个App就会生成这个key,要推送也必须要这个key才行)

    4.最后在自己的Activity中调用这两个方法,才能启动。

    protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            // 必须setDebugMode() 和 init()
            JPushInterface.setDebugMode(true);
            JPushInterface.init(this);
        }

    配置完成就可以试试成功了!

    但,有很多还是运行不了出现这个错误([JPushGlobal] JPush .so file do not match JPush .jar file in the project, Failed to init JPush

    造成这个错误的原因是Android Studio没有正确加载这个文件(libjpush210.so)。

    我们可以在工程APP目录下找到 build.gradle 文件,打开它

    //在android下添加这个一个sourceSets.main
        sourceSets {
            main {
                jniLibs.srcDirs = ['libs']
            }
        }

    然后我们的程序应该就可以正常运行了!

    打开软件,在JPush上推送消息尝试一下。

  • 相关阅读:
    ubuntu下如何更改mysql数据存放路径
    collection_select
    发现星期六日的电视比较好看
    rails
    系统抢救10.04
    劫后重生,痛定思痛,ubuntu 10.04=>10.10
    随机查询N条记录
    which linux your like
    kindeditor的使用
    array
  • 原文地址:https://www.cnblogs.com/android-host/p/5262756.html
Copyright © 2020-2023  润新知