2017-05-27 45 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'。