Hi Inosh

Notification Type gets cleared from the device when it is restarted and
> Kasun fix this (Please correct me if am wrong).
> Since It is fixed, I think the issue here is we have not yet passed these
> values from the server.
>
If so, then shouldn't this issue be there (after registering to the server)
even without restarting the device?

Regards,
Nira

On Tue, May 12, 2015 at 4:52 PM, Inosh Perera <ino...@wso2.com> wrote:

> Hi Niranjan,
>
>  Notification Type gets cleared from the device when it is restarted and
> Kasun fix this (Please correct me if am wrong).
> Since It is fixed, I think the issue here is we have not yet passed these
> values from the server.
>
> To add to this there was a limitation in the previous version is that
> after a device is registered and if we change the Notification Type in the
> server, it does not get reflected in the device.
> Yes, We will have to address this issue, @Milan - We can make this a
> profile operation. When the mode gets changed, all the android devices must
> get a profile WDYT?
>
> Regards,
> Inosh
>
>
>
>
> On Tue, May 12, 2015 at 4:32 PM, Niranjan Karunanandham <niran...@wso2.com
> > wrote:
>
>> Hi Inosh,
>>
>>
>>> According to EMM 1.1.0, When the device is successfully registered, with
>>> the response, we sent a set of initial configurations. This configuration,
>>> included things such as, whether the mode is LOCAL or GCM, if
>>> LOCAL(polling) then the frequency to poll. In EMM 1.1.0, these were stored
>>> in a config file and passed to the device. So in MDM we must pass this
>>> value and store at some point, so that the device can choose how to
>>> communicate with the server.
>>>
>> In EMM 1.1.0, these configurations (Type of notification, i.e., Local or
>> GCM) used to be stored in the registry. The default value is stored in the
>> config file which is then copied to the registry (tenant space) when the
>> tenant admin logs in for the first time. Therefore this setting can be
>> changed per tenant. When the device registers to the system, these values
>> are sent which is persisted in the device. AFAIR the same issue mentioned
>> by Milan was there in the previous version wherein the Notification Type
>> gets cleared from the device when it is restarted and Kasun fix this
>> (Please correct me if am wrong). To add to this there was a limitation in
>> the previous version is that after a device is registered and if we change
>> the Notification Type in the server, it does not get reflected in the
>> device.
>>
>> Regards,
>> Nira
>>
>>
>> On Tue, May 12, 2015 at 3:36 PM, Inosh Perera <ino...@wso2.com> wrote:
>>
>>> Hi Milan,
>>>
>>> According to EMM 1.1.0, When the device is successfully registered, with
>>> the response, we sent a set of initial configurations. This configuration,
>>> included things such as, whether the mode is LOCAL or GCM, if
>>> LOCAL(polling) then the frequency to poll. In EMM 1.1.0, these were stored
>>> in a config file and passed to the device. So in MDM we must pass this
>>> value and store at some point, so that the device can choose how to
>>> communicate with the server.
>>>
>>> Regards,
>>> Inosh
>>>
>>> On Tue, May 12, 2015 at 2:52 PM, Milan Perera <mi...@wso2.com> wrote:
>>>
>>>> Hi,
>>>>
>>>> I'm getting $subject whenever the device get restarted. Exception
>>>> details as follows:
>>>>
>>>> java.lang.RuntimeException: Unable to start receiver
>>>> org.wso2.mdm.agent.services.DeviceStartupIntentReceiver:
>>>> java.lang.NullPointerException: Attempt to invoke virtual method
>>>> 'java.lang.String java.lang.String.trim()' on a null object reference
>>>>             at
>>>> android.app.ActivityThread.handleReceiver(ActivityThread.java:2586)
>>>>             at
>>>> android.app.ActivityThread.access$1700(ActivityThread.java:144)
>>>>             at
>>>> android.app.ActivityThread$H.handleMessage(ActivityThread.java:1355)
>>>>             at android.os.Handler.dispatchMessage(Handler.java:102)
>>>>             at android.os.Looper.loop(Looper.java:135)
>>>>             at android.app.ActivityThread.main(ActivityThread.java:5221)
>>>>             at java.lang.reflect.Method.invoke(Native Method)
>>>>             at java.lang.reflect.Method.invoke(Method.java:372)
>>>>             at
>>>> com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
>>>>             at
>>>> com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
>>>>      Caused by: java.lang.NullPointerException: Attempt to invoke
>>>> virtual method 'java.lang.String java.lang.String.trim()' on a null object
>>>> reference
>>>>             at
>>>> org.wso2.mdm.agent.services.DeviceStartupIntentReceiver.setRecurringAlarm(DeviceStartupIntentReceiver.java:61)
>>>>             at
>>>> org.wso2.mdm.agent.services.DeviceStartupIntentReceiver.onReceive(DeviceStartupIntentReceiver.java:45)
>>>>             at
>>>> android.app.ActivityThread.handleReceiver(ActivityThread.java:2579)
>>>>             at
>>>> android.app.ActivityThread.access$1700(ActivityThread.java:144)
>>>>             at
>>>> android.app.ActivityThread$H.handleMessage(ActivityThread.java:1355)
>>>>             at android.os.Handler.dispatchMessage(Handler.java:102)
>>>>             at android.os.Looper.loop(Looper.java:135)
>>>>             at android.app.ActivityThread.main(ActivityThread.java:5221)
>>>>             at java.lang.reflect.Method.invoke(Native Method)
>>>>             at java.lang.reflect.Method.invoke(Method.java:372)
>>>>             at
>>>> com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
>>>>             at
>>>> com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
>>>>
>>>> ​This is occurred when device invoke *setRecurringAlarm()* method in 
>>>> *DeviceStartupIntentReceiver
>>>> *class at the start-up.​ The reason for getting this exception because
>>>> it tries to get the '*mode*' string from *SharedPreference* and trim
>>>> it. However the '*mode*' is not stored there.
>>>>
>>>> Code Snippet
>>>> -------------------
>>>>
>>>> String mode = Preference.getString(context, 
>>>> resources.getString(R.string.shared_pref_message_mode));
>>>>
>>>> if (NOTIFIER_MODE.equals(mode.trim().toUpperCase(Locale.ENGLISH))) { ... }
>>>>
>>>> ​
>>>> According to what I have understood, it checks the *NOTIFICATION_MODE*
>>>> whether *LOCAL* or *GCM*.
>>>>
>>>> So my questions are, *where should I set this 'mode' preference and
>>>> how do we decide whether it should be LOCAL or GCM?*
>>>> ​
>>>>
>>>> --
>>>> Milan Harindu Perera
>>>> Software Engineer
>>>> *WSO2, Inc*
>>>> (+94) 77 309 7088
>>>> lean . enterprise . middleware
>>>> <http://lk.linkedin.com/in/milanharinduperera>
>>>>
>>>
>>>
>>>
>>> --
>>> Inosh Perera
>>> Software Engineer, WSO2 Inc.
>>> Tel: 0785293686
>>>
>>> _______________________________________________
>>> Dev mailing list
>>> Dev@wso2.org
>>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>>
>>>
>>
>>
>> --
>>
>> *Niranjan Karunanandham*
>> Senior Software Engineer - WSO2 Inc.
>> WSO2 Inc.: http://www.wso2.com
>>
>
>
>
> --
> Inosh Perera
> Software Engineer, WSO2 Inc.
> Tel: 0785293686
>



-- 

*Niranjan Karunanandham*
Senior Software Engineer - WSO2 Inc.
WSO2 Inc.: http://www.wso2.com
_______________________________________________
Dev mailing list
Dev@wso2.org
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to