2017-05-27 3 views
0

J'essaie de créer une application de test pour intégrer la notification urbaine. Je suis https://docs.urbanairship.com/platform/android/#getting-started et https://michiganlabs.com/2014/01/31/push-notification-urban-airship/ et en conséquence enregistrer mon nouveau projet dans FCM aussi. J'ai également enregistrer mon paquet avec l'API Key et l'identifiant de l'expéditeur dans urbanairship.Mise en œuvre de la notification UrbanAirship dans Android

Code est ci-dessous pour Android Manifest:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="jss.urabn"> 
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> 
    <uses-permission android:name="android.permission.INTERNET"/> 


    <application 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:roundIcon="@mipmap/ic_launcher_round" 
     android:supportsRtl="true" 
     android:theme="@style/AppTheme"> 

     <!-- Autopilot calls takeOff without the need to override the Application --> 
     <meta-data android:name="com.urbanairship.autopilot" 
      android:value="com.urbanairship.Autopilot"/> 

     <activity android:name=".MainActivity"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 


    </application> 

Code pour MainActivity

package jss.urabn; 

import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 

import com.urbanairship.AirshipConfigOptions; 
import com.urbanairship.UAirship; 
import com.urbanairship.push.PushManager; 

public class MainActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     AirshipConfigOptions options = AirshipConfigOptions.loadDefaultOptions(this); 
       options.developmentAppKey = 'Your development app key'; 
       options.productionAppKey = 'Your production app key'; 
       options.inProduction = false; 




    } 
} 

Je ne reçois pas d'erreur sur la méthode loaddefaultoptions (ne peut pas résoudre méthode).

Quelqu'un peut-il guider.

Répondre

1

Puisque vous utilisez le pilote automatique, il tirera les options directement du fichier airshipconfig.properties. Si vous essayez de personnaliser manuellement les options, vous devez le faire dans une classe Autopilot personnalisée ou en remplaçant l'application principale. Pas dans la MainActivity que vous avez ci-dessus.

Dans votre manifeste:

<meta-data 
     android:name="com.urbanairship.autopilot" 
     android:value="cjss.urabn.SampleAutopilot"/> 

Définissez ensuite une classe AutoPilot:

package jss.urabn; 

public class SampleAutopilot extends Autopilot { 

    @Override 
    public void onAirshipReady(UAirship airship) { 
     airship.getPushManager().setUserNotificationsEnabled(true); 
    } 

    @Nullable 
    @Override 
    public AirshipConfigOptions createAirshipConfigOptions(@NonNull Context context) { 
     AirshipConfigOptions options = new AirshipConfigOptions.Builder() 
       .applyDefaultProperties(context) 
       .setInProduction(!BuildConfig.DEBUG) 
       .setDevelopmentAppKey("Your Development App Key") 
       .setDevelopmentAppSecret("Your Development App Secret") 
       .setProductionAppKey("Your Production App Key") 
       .setProductionAppSecret("Your Production App Secret") 
       .setNotificationAccentColor(ContextCompat.getColor(context, R.color.color_accent)) 
       .setNotificationIcon(R.drawable.ic_notification) 
       .build(); 

     return options; 
    } 
} 

La classe AirshipConfig a changé à un immuable. Vous savez comment le définir en utilisant le constructeur. La méthode 'loadDefaultOptions' correspond aux 'applyDefaultProperties' des builders.