2017-05-27 27 views
0

我试图构建测试应用程序来集成urbanairship通知。我正在关注https://docs.urbanairship.com/platform/android/#getting-startedhttps://michiganlabs.com/2014/01/31/push-notification-urban-airship/,并相应地在FCM中注册我的新项目。我还注册了API Key和发件人ID在我的包裹在urbanairship。Android中的UrbanAirship通知实现

下面是Android清单代码:

<?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> 

代码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; 




    } 
} 

我不是在loaddefaultoptions方法获取错误(无法解析法)。

任何人都可以引导。

回答

1

由于您使用的是自动驾驶仪,它将直接从airshipconfig.properties文件中提取选项。如果您尝试手动自定义选项,则必须在自定义自动驾驶仪类中或覆盖主应用程序中执行此操作。不在您上面的MainActivity中。

在您的清单:

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

然后定义自动驾驶仪类:

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; 
    } 
} 

的AirshipConfig类已更改为不可变的。你知道如何使用构建器来定义它。方法'loadDefaultOptions'映射到构建器的'applyDefaultProperties'。