1.在JPush官方下載 JPush SDK(jpush-android-arm-2.1.0.zip),我下載的是2.1.0;android
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複製到此文件夾下);gradle
3.在AndroidManifest.xml文件中配置權限:ui
<!-- 這些權限都須要加入到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才行)this
4.最後在本身的Activity中調用這兩個方法,才能啓動。spa
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 必須setDebugMode() 和 init() JPushInterface.setDebugMode(true); JPushInterface.init(this); }
配置完成就能夠試試成功了!.net
但,有不少仍是運行不了出現這個錯誤([JPushGlobal] JPush .so file do not match JPush .jar file in the project, Failed to init JPush)code
形成這個錯誤的緣由是Android Studio沒有正確加載這個文件(libjpush210.so)。xml
咱們能夠在工程APP目錄下找到 build.gradle 文件,打開它blog
//在android下添加這個一個sourceSets.main sourceSets { main { jniLibs.srcDirs = ['libs'] } }
而後咱們的程序應該就能夠正常運行了!ip
打開軟件,在JPush上推送消息嘗試一下。