Is it possible to share data between the Android framework and an app?
I'm modifying the Android framework login component so that a variable will
be saved upon login, and then later retrieved by another app. I'm trying to
use SharedPreferences, and my code looks like this:
In com.android.internal.policy.impl.PasswordUnlockScreen.java, I have the
following code to write to the SharedPreferences.
In my other app, I have the following code to read from it.
Context con;
String data;
try {
con = this.createPackageContext("com.android.internal.policy.impl", 0);
SharedPreferences pref = con.getSharedPreferences("mypref",
Context.MODE_PRIVATE);
data = pref.getString("mypref", "0")
} catch (NameNotFoundException e) {
data = "0";
Log.e("No data shared", e.toString());
}
When I run the code, I keep getting the NameNotFoundException, as it claims
the application package com.android.internal.policy.impl is not found, so
my data is always "0".
FYI this *definitely* does not belong on android-developers.
Additionally, it's sort of unclear what you're asking. You're asking
about the sharing of the shared preferences, correct?... If you're
modifying the system and can't figure, that generally doesn't bode
well.. What are you actually trying to do? Something with
authentication?
On Mon, Aug 13, 2012 at 2:59 AM, Sihan Goi <gois...@gmail.com> wrote:
> Hi,
> Is it possible to share data between the Android framework and an app?
> I'm modifying the Android framework login component so that a variable will
> be saved upon login, and then later retrieved by another app. I'm trying to
> use SharedPreferences, and my code looks like this:
> In com.android.internal.policy.impl.PasswordUnlockScreen.java, I have the
> following code to write to the SharedPreferences.
> When I run the code, I keep getting the NameNotFoundException, as it claims
> the application package com.android.internal.policy.impl is not found, so my
> data is always "0".
> How can I share data between these 2 components?
> --
> You received this message because you are subscribed to the Google
> Groups "Android Developers" group.
> To post to this group, send email to android-developers@googlegroups.com
> To unsubscribe from this group, send email to
> android-developers+unsubscribe@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/android-developers?hl=en
You can store key/value pairs in Accounts, via the Account
Manager. I never did it, but I guess it could fit your needs,
since you anyway seem to plug-in into some Account
validation, right?
> Is it possible to share data between the Android framework and an app?
> I'm modifying the Android framework login component so that a variable
> will be saved upon login, and then later retrieved by another app. I'm
> trying to use SharedPreferences, and my code looks like this:
> In com.android.internal.policy.impl.PasswordUnlockScreen.java, I have
> the following code to write to the SharedPreferences.
> When I run the code, I keep getting the NameNotFoundException, as it
> claims the application package com.android.internal.policy.impl is not
> found, so my data is always "0".
> How can I share data between these 2 components?
> Thanks.
> --
> - Goi Sihan
> gois...@gmail.com <mailto:gois...@gmail.com>
> --
> You received this message because you are subscribed to the Google
> Groups "Android Developers" group.
> To post to this group, send email to android-developers@googlegroups.com
> To unsubscribe from this group, send email to
> android-developers+unsubscribe@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/android-developers?hl=en
Yes I'm trying to share some data between the framework and the launcher app, and I'm trying to accomplish this via SharedPreferences. The framework will set a variable during user authentication, which will then be read later on by the launcher. I'm having some problems doing this as I get a NameNotFoundException exception in my try-catch block.
On Monday, August 13, 2012 4:01:59 PM UTC+8, Kristopher Micinski wrote:
> FYI this *definitely* does not belong on android-developers.
> Additionally, it's sort of unclear what you're asking. You're asking > about the sharing of the shared preferences, correct?... If you're > modifying the system and can't figure, that generally doesn't bode > well.. What are you actually trying to do? Something with > authentication?
> kris
> On Mon, Aug 13, 2012 at 2:59 AM, Sihan Goi <goi...@gmail.com <javascript:>> > wrote: > > Hi,
> > Is it possible to share data between the Android framework and an app?
> > I'm modifying the Android framework login component so that a variable > will > > be saved upon login, and then later retrieved by another app. I'm trying > to > > use SharedPreferences, and my code looks like this:
> > In com.android.internal.policy.impl.PasswordUnlockScreen.java, I have > the > > following code to write to the SharedPreferences.
> > When I run the code, I keep getting the NameNotFoundException, as it > claims > > the application package com.android.internal.policy.impl is not found, > so my > > data is always "0".
> > How can I share data between these 2 components?
> > -- > > You received this message because you are subscribed to the Google > > Groups "Android Developers" group. > > To post to this group, send email to android-d...@googlegroups.com<javascript:> > > To unsubscribe from this group, send email to > > android-developers+unsubscribe@googlegroups.com <javascript:> > > For more options, visit this group at > > http://groups.google.com/group/android-developers?hl=en
This group is solely for SDK related applications. There is a list of
groups on the website indicating which might be good for this,
android-platform, and android-porting, perhaps?
I'm a little weary of sticking this in shared preferences for this,
but I guess there's nothing inherently horrible about that..
On Mon, Aug 13, 2012 at 5:28 AM, galapogos <gois...@gmail.com> wrote:
> Where would it belong then?
> Yes I'm trying to share some data between the framework and the launcher
> app, and I'm trying to accomplish this via SharedPreferences. The framework
> will set a variable during user authentication, which will then be read
> later on by the launcher. I'm having some problems doing this as I get a
> NameNotFoundException exception in my try-catch block.
> On Monday, August 13, 2012 4:01:59 PM UTC+8, Kristopher Micinski wrote:
>> FYI this *definitely* does not belong on android-developers.
>> Additionally, it's sort of unclear what you're asking. You're asking
>> about the sharing of the shared preferences, correct?... If you're
>> modifying the system and can't figure, that generally doesn't bode
>> well.. What are you actually trying to do? Something with
>> authentication?
>> kris
>> On Mon, Aug 13, 2012 at 2:59 AM, Sihan Goi <goi...@gmail.com> wrote:
>> > Hi,
>> > Is it possible to share data between the Android framework and an app?
>> > I'm modifying the Android framework login component so that a variable
>> > will
>> > be saved upon login, and then later retrieved by another app. I'm trying
>> > to
>> > use SharedPreferences, and my code looks like this:
>> > In com.android.internal.policy.impl.PasswordUnlockScreen.java, I have
>> > the
>> > following code to write to the SharedPreferences.
>> > When I run the code, I keep getting the NameNotFoundException, as it
>> > claims
>> > the application package com.android.internal.policy.impl is not found,
>> > so my
>> > data is always "0".
>> > How can I share data between these 2 components?
>> > --
>> > You received this message because you are subscribed to the Google
>> > Groups "Android Developers" group.
>> > To post to this group, send email to android-d...@googlegroups.com
>> > To unsubscribe from this group, send email to
>> > android-developers+unsubscribe@googlegroups.com
>> > For more options, visit this group at
>> > http://groups.google.com/group/android-developers?hl=en
> --
> You received this message because you are subscribed to the Google
> Groups "Android Developers" group.
> To post to this group, send email to android-developers@googlegroups.com
> To unsubscribe from this group, send email to
> android-developers+unsubscribe@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/android-developers?hl=en
Thanks, I didn't know of the android-platform group, I've posted my question there.
Meanwhile, do you have any idea why I would encounter the above-mentioned problems with SharedPreferences?
I've also tried simply creating a file in /mnt/sdcard in the framework with the intention of the app reading it later, but I was thrown a permission denied error. I was under the impression that accessing the external sdcard required no special permissions, but if permissions are necessary, I'm not even sure where to specify it since I can't seem to find the AndroidManifest.xml of this particular framework component.
On Monday, August 13, 2012 10:31:47 PM UTC+8, Kristopher Micinski wrote:
> This group is solely for SDK related applications. There is a list of > groups on the website indicating which might be good for this, > android-platform, and android-porting, perhaps?
> I'm a little weary of sticking this in shared preferences for this, > but I guess there's nothing inherently horrible about that..
> kris
> On Mon, Aug 13, 2012 at 5:28 AM, galapogos <goi...@gmail.com <javascript:>> > wrote: > > Where would it belong then?
> > Yes I'm trying to share some data between the framework and the launcher > > app, and I'm trying to accomplish this via SharedPreferences. The > framework > > will set a variable during user authentication, which will then be read > > later on by the launcher. I'm having some problems doing this as I get a > > NameNotFoundException exception in my try-catch block.
> > On Monday, August 13, 2012 4:01:59 PM UTC+8, Kristopher Micinski wrote:
> >> FYI this *definitely* does not belong on android-developers.
> >> Additionally, it's sort of unclear what you're asking. You're asking > >> about the sharing of the shared preferences, correct?... If you're > >> modifying the system and can't figure, that generally doesn't bode > >> well.. What are you actually trying to do? Something with > >> authentication?
> >> kris
> >> On Mon, Aug 13, 2012 at 2:59 AM, Sihan Goi <goi...@gmail.com> wrote: > >> > Hi,
> >> > Is it possible to share data between the Android framework and an > app?
> >> > I'm modifying the Android framework login component so that a > variable > >> > will > >> > be saved upon login, and then later retrieved by another app. I'm > trying > >> > to > >> > use SharedPreferences, and my code looks like this:
> >> > In com.android.internal.policy.impl.PasswordUnlockScreen.java, I have > >> > the > >> > following code to write to the SharedPreferences.
> >> > When I run the code, I keep getting the NameNotFoundException, as it > >> > claims > >> > the application package com.android.internal.policy.impl is not > found, > >> > so my > >> > data is always "0".
> >> > How can I share data between these 2 components?
> >> > -- > >> > You received this message because you are subscribed to the Google > >> > Groups "Android Developers" group. > >> > To post to this group, send email to android-d...@googlegroups.com > >> > To unsubscribe from this group, send email to > >> > android-developers+unsubscribe@googlegroups.com <javascript:> > >> > For more options, visit this group at > >> > http://groups.google.com/group/android-developers?hl=en
> > -- > > You received this message because you are subscribed to the Google > > Groups "Android Developers" group. > > To post to this group, send email to android-d...@googlegroups.com<javascript:> > > To unsubscribe from this group, send email to > > android-developers+unsubscribe@googlegroups.com <javascript:> > > For more options, visit this group at > > http://groups.google.com/group/android-developers?hl=en
Thanks. However, the device I'm working on doesn't have an internet connection nor any accounts set up, so whenever I try to access the accounts, even just accounts[0], I get a ArrayIndexOutOfBoundsException.
On Monday, August 13, 2012 4:11:48 PM UTC+8, jb wrote:
> You can store key/value pairs in Accounts, via the Account > Manager. I never did it, but I guess it could fit your needs, > since you anyway seem to plug-in into some Account > validation, right?
> > Is it possible to share data between the Android framework and an app?
> > I'm modifying the Android framework login component so that a variable > > will be saved upon login, and then later retrieved by another app. I'm > > trying to use SharedPreferences, and my code looks like this:
> > In com.android.internal.policy.impl.PasswordUnlockScreen.java, I have > > the following code to write to the SharedPreferences.
> > When I run the code, I keep getting the NameNotFoundException, as it > > claims the application package com.android.internal.policy.impl is not > > found, so my data is always "0".
> > How can I share data between these 2 components?
> > -- > > You received this message because you are subscribed to the Google > > Groups "Android Developers" group. > > To post to this group, send email to android-d...@googlegroups.com<javascript:> > > To unsubscribe from this group, send email to > > android-developers+unsubscribe@googlegroups.com <javascript:> > > For more options, visit this group at > > http://groups.google.com/group/android-developers?hl=en
Well, this isn't really the appropriate place to answer system hacking
related questions, but basically, you're not running in the context of
that package, you're running somewhere else, so you're not storing in
that shared preferences.
But beyond that, this is just a horrible design, you're using a shared
preferences and then: you encode the component statically, leading to
a really kludgey hack depending on your system component, you allow
the string to be read by *anyone*, not just your app, which it
probably should be, and in reality sharing data to an app should
probably be shared by using a new system server and then interfaced
with via an AIDL component or something of the like, like *every
other* system process, that is the "standard" way.
You might be upset, because perhaps this is just a quick hack, but
then, that type of question doesn't belong on android-developers, and
this is what I think is the "right" way to do it :-).
You can see tons of other examples of this kind of thing: inside any
*Manager, for example, providing this interface.
On Mon, Aug 13, 2012 at 10:57 PM, galapogos <gois...@gmail.com> wrote:
> Thanks, I didn't know of the android-platform group, I've posted my question
> there.
> Meanwhile, do you have any idea why I would encounter the above-mentioned
> problems with SharedPreferences?
> I've also tried simply creating a file in /mnt/sdcard in the framework with
> the intention of the app reading it later, but I was thrown a permission
> denied error. I was under the impression that accessing the external sdcard
> required no special permissions, but if permissions are necessary, I'm not
> even sure where to specify it since I can't seem to find the
> AndroidManifest.xml of this particular framework component.
> Thanks again.
> On Monday, August 13, 2012 10:31:47 PM UTC+8, Kristopher Micinski wrote:
>> This group is solely for SDK related applications. There is a list of
>> groups on the website indicating which might be good for this,
>> android-platform, and android-porting, perhaps?
>> I'm a little weary of sticking this in shared preferences for this,
>> but I guess there's nothing inherently horrible about that..
>> kris
>> On Mon, Aug 13, 2012 at 5:28 AM, galapogos <goi...@gmail.com> wrote:
>> > Where would it belong then?
>> > Yes I'm trying to share some data between the framework and the launcher
>> > app, and I'm trying to accomplish this via SharedPreferences. The
>> > framework
>> > will set a variable during user authentication, which will then be read
>> > later on by the launcher. I'm having some problems doing this as I get a
>> > NameNotFoundException exception in my try-catch block.
>> > On Monday, August 13, 2012 4:01:59 PM UTC+8, Kristopher Micinski wrote:
>> >> FYI this *definitely* does not belong on android-developers.
>> >> Additionally, it's sort of unclear what you're asking. You're asking
>> >> about the sharing of the shared preferences, correct?... If you're
>> >> modifying the system and can't figure, that generally doesn't bode
>> >> well.. What are you actually trying to do? Something with
>> >> authentication?
>> >> kris
>> >> On Mon, Aug 13, 2012 at 2:59 AM, Sihan Goi <goi...@gmail.com> wrote:
>> >> > Hi,
>> >> > Is it possible to share data between the Android framework and an
>> >> > app?
>> >> > I'm modifying the Android framework login component so that a
>> >> > variable
>> >> > will
>> >> > be saved upon login, and then later retrieved by another app. I'm
>> >> > trying
>> >> > to
>> >> > use SharedPreferences, and my code looks like this:
>> >> > In com.android.internal.policy.impl.PasswordUnlockScreen.java, I have
>> >> > the
>> >> > following code to write to the SharedPreferences.
>> >> > When I run the code, I keep getting the NameNotFoundException, as it
>> >> > claims
>> >> > the application package com.android.internal.policy.impl is not
>> >> > found,
>> >> > so my
>> >> > data is always "0".
>> >> > How can I share data between these 2 components?
>> >> > --
>> >> > You received this message because you are subscribed to the Google
>> >> > Groups "Android Developers" group.
>> >> > To post to this group, send email to android-d...@googlegroups.com
>> >> > To unsubscribe from this group, send email to
>> >> > android-developers+unsubscribe@googlegroups.com
>> >> > For more options, visit this group at
>> >> > http://groups.google.com/group/android-developers?hl=en
>> > --
>> > You received this message because you are subscribed to the Google
>> > Groups "Android Developers" group.
>> > To post to this group, send email to android-d...@googlegroups.com
>> > To unsubscribe from this group, send email to
>> > android-developers+unsubscribe@googlegroups.com
>> > For more options, visit this group at
>> > http://groups.google.com/group/android-developers?hl=en
> --
> You received this message because you are subscribed to the Google
> Groups "Android Developers" group.
> To post to this group, send email to android-developers@googlegroups.com
> To unsubscribe from this group, send email to
> android-developers+unsubscribe@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/android-developers?hl=en
I fully understand the kludgeyness of this implementation, and you're absolutely right, this is a quick dirty hack. The actual implementation will not be done in this way, but rather in a more secure location. However, that portion is currently not being done by myself, so in the mean time I'm trying to whip some sort of a framework up to continue development and testing, and then port the final implementation over once that is ready. It does not need to be secure or elegant - it just needs to work for now, like a duct tape, which is why I'm even contemplating writing to a file on the sdcard (which is totally insecure and not a good idea for a final implementation). :)
In any case, I appreciate your continued patience in addressing my somewhat esoteric problems.
On Tuesday, August 14, 2012 11:28:19 AM UTC+8, Kristopher Micinski wrote:
> Well, this isn't really the appropriate place to answer system hacking > related questions, but basically, you're not running in the context of > that package, you're running somewhere else, so you're not storing in > that shared preferences.
> But beyond that, this is just a horrible design, you're using a shared > preferences and then: you encode the component statically, leading to > a really kludgey hack depending on your system component, you allow > the string to be read by *anyone*, not just your app, which it > probably should be, and in reality sharing data to an app should > probably be shared by using a new system server and then interfaced > with via an AIDL component or something of the like, like *every > other* system process, that is the "standard" way.
> You might be upset, because perhaps this is just a quick hack, but > then, that type of question doesn't belong on android-developers, and > this is what I think is the "right" way to do it :-).
> You can see tons of other examples of this kind of thing: inside any > *Manager, for example, providing this interface.
> kris
> On Mon, Aug 13, 2012 at 10:57 PM, galapogos <goi...@gmail.com<javascript:>> > wrote: > > Thanks, I didn't know of the android-platform group, I've posted my > question > > there.
> > Meanwhile, do you have any idea why I would encounter the > above-mentioned > > problems with SharedPreferences?
> > I've also tried simply creating a file in /mnt/sdcard in the framework > with > > the intention of the app reading it later, but I was thrown a permission > > denied error. I was under the impression that accessing the external > sdcard > > required no special permissions, but if permissions are necessary, I'm > not > > even sure where to specify it since I can't seem to find the > > AndroidManifest.xml of this particular framework component.
> > Thanks again.
> > On Monday, August 13, 2012 10:31:47 PM UTC+8, Kristopher Micinski wrote:
> >> This group is solely for SDK related applications. There is a list of > >> groups on the website indicating which might be good for this, > >> android-platform, and android-porting, perhaps?
> >> I'm a little weary of sticking this in shared preferences for this, > >> but I guess there's nothing inherently horrible about that..
> >> kris
> >> On Mon, Aug 13, 2012 at 5:28 AM, galapogos <goi...@gmail.com> wrote: > >> > Where would it belong then?
> >> > Yes I'm trying to share some data between the framework and the > launcher > >> > app, and I'm trying to accomplish this via SharedPreferences. The > >> > framework > >> > will set a variable during user authentication, which will then be > read > >> > later on by the launcher. I'm having some problems doing this as I > get a > >> > NameNotFoundException exception in my try-catch block.
> >> > On Monday, August 13, 2012 4:01:59 PM UTC+8, Kristopher Micinski > wrote:
> >> >> FYI this *definitely* does not belong on android-developers.
> >> >> Additionally, it's sort of unclear what you're asking. You're > asking > >> >> about the sharing of the shared preferences, correct?... If you're > >> >> modifying the system and can't figure, that generally doesn't bode > >> >> well.. What are you actually trying to do? Something with > >> >> authentication?
> >> >> kris
> >> >> On Mon, Aug 13, 2012 at 2:59 AM, Sihan Goi <goi...@gmail.com> > wrote: > >> >> > Hi,
> >> >> > Is it possible to share data between the Android framework and an > >> >> > app?
> >> >> > I'm modifying the Android framework login component so that a > >> >> > variable > >> >> > will > >> >> > be saved upon login, and then later retrieved by another app. I'm > >> >> > trying > >> >> > to > >> >> > use SharedPreferences, and my code looks like this:
> >> >> > In com.android.internal.policy.impl.PasswordUnlockScreen.java, I > have > >> >> > the > >> >> > following code to write to the SharedPreferences.
> >> >> > When I run the code, I keep getting the NameNotFoundException, as > it > >> >> > claims > >> >> > the application package com.android.internal.policy.impl is not > >> >> > found, > >> >> > so my > >> >> > data is always "0".
> >> >> > How can I share data between these 2 components?
> >> >> > -- > >> >> > You received this message because you are subscribed to the Google > >> >> > Groups "Android Developers" group. > >> >> > To post to this group, send email to android-d...@googlegroups.com > >> >> > To unsubscribe from this group, send email to > >> >> > android-developers+unsubscribe@googlegroups.com <javascript:> > >> >> > For more options, visit this group at > >> >> > http://groups.google.com/group/android-developers?hl=en
> >> > -- > >> > You received this message because you are subscribed to the Google > >> > Groups "Android Developers" group. > >> > To post to this group, send email to android-d...@googlegroups.com > >> > To unsubscribe from this group, send email to > >> > android-developers+unsubscribe@googlegroups.com <javascript:> > >> > For more options, visit this group at > >> > http://groups.google.com/group/android-developers?hl=en
> > -- > > You received this message because you are subscribed to the Google > > Groups "Android Developers" group. > > To post to this group, send email to android-d...@googlegroups.com<javascript:> > > To unsubscribe from this group, send email to > > android-developers+unsubscribe@googlegroups.com <javascript:> > > For more options, visit this group at > > http://groups.google.com/group/android-developers?hl=en