I discarded the permissions on the Activities, as I didn't know why
they were there either, I was trying out that example.
If I go with a permission entry on my ContentProvider, I cannot query
the data. If I change the android:permission on my ContentProvider
like so:
<provider
android:name=".BPProvider"
android:authorities="com.eyebrowssoftware.bptracker.bp"
android:label="@string/title_provider"
android:icon="@drawable/icon"
android:readPermission="com.eyebrowssoftware.BPTracker.permission.MEDICAL"
android:writePermission="com.eyebrowssoftware.BPTracker.permission.MEDICAL"
/>
I cannot query the data. I do have, as shown above, the uses-
permission element declared at the top of my manifest file.
On Apr 3, 1:15 pm, Mark Murphy <[email protected]> wrote:
> Brion Emde wrote:
> > I'm just trying to make happen what is described here, with the custom
> > permission:
>
> >http://developer.android.com/guide/topics/manifest/manifest-intro.htm...
>
> > i.e. I want my activities (I'm only showing one below) and
> > ContentProvider to not be accessible from other applications, because
> > they hold the user's personal medical data.
>
> Bear in mind that they *will* be accessible from other applications, so
> long as those other applications request the permission and the user
> agrees to it.
>
> If you absolutely do not ever want another application to access the
> data, don't implement a ContentProvider, because the primary purpose of
> a ContentProvider is to provide data to other applications.
>
>
>
>
>
> > Here is my AndroidManifest.xml. I can't figure out what is wrong. My
> > main activity gets a permission denial like this:
>
> > ActivityManager: java.lang.SecurityException: Permission Denial:
> > starting Intent { act=android.intent.action.MAIN
> > cat=[android.intent.category.LAUNCHER] flg=0x10000000
> > cmp=com.eyebrowssoftware.bptracker/.BPRecordList } from null (pid=-1,
> > uid=-1) requires com.eyebrowssoftware.BPTracker.permission.MEDICAL
>
> > --- ANDROID MANIFEST.xml ---
>
> > <?xml version="1.0" encoding="utf-8"?>
> > <manifest xmlns:android="http://schemas.android.com/apk/res/android"
> > package="com.eyebrowssoftware.bptracker"
> > android:versionCode="1"
> > android:versionName="1.0"
> > <permission
> > android:name="com.eyebrowssoftware.BPTracker.permission.MEDICAL"
> > android:permissionGroup="android.permission-group.PERSONAL_INFO"
> > android:label="@string/bp_permission_label"
> > android:description="@string/bp_permission_description"
> > android:protectionLevel="normal"
> > />
> > <uses-permission
> > android:name="com.eyebrowssoftware.BPTracker.permission.MEDICAL"
> > />
> > <application
> > android:name=".BPTracker"
> > android:icon="@drawable/icon"
> > android:label="@string/app_name"
> > android:debuggable="true">
>
> > <activity
> > android:name=".BPRecordList"
> > android:label="@string/app_name"
> > android:theme="@android:style/Theme.Light"
>
> > android:permission="com.eyebrowssoftware.BPTracker.permission.MEDICAL"
>
> > <intent-filter>
> > <action android:name="android.intent.action.MAIN" />
> > <category
> > android:name="android.intent.category.LAUNCHER" />
> > </intent-filter>
> > </activity>
> > <!-- only showing launcher activity, others omitted for
> > clarity -->
>
> > <provider
> > android:name=".BPProvider"
> > android:authorities="com.eyebrowssoftware.bptracker.bp"
> > android:label="@string/title_provider"
> > android:icon="@drawable/icon"
>
> > android:permission="com.eyebrowssoftware.BPTracker.permission.MEDICAL"
> > />
> > </application>
> > <uses-sdk
> > android:targetSdkVersion="4"
> > android:minSdkVersion="3"
> > />
> > <supports-screens
> > android:largeScreens="true"
> > android:smallScreens="true"
> > android:anyDensity="true"
> > android:resizeable="true"
> > android:normalScreens="true"
> > />
> > </manifest>
>
> "android:permission -- The name of a permission that clients must have
> to launch the activity or otherwise get it to respond to an intent. If a
> caller of startActivity() or startActivityForResult() has not been
> granted the specified permission, its intent will not be delivered to
> the activity."
>
> (fromhttp://developer.android.com/guide/topics/manifest/activity-element.h...)
>
> The Launcher does not hold the
> com.eyebrowssoftware.BPTracker.permission.MEDICAL permission. Hence, it
> can't start it.
>
> I am not quite sure why you are trying to protect activities with a
> permission. I can understand the permission on the content provider, if
> you want users to agree to allow the other apps access to the data. But
> who cares if, for some screwball reason, something else (like, say, the
> Launcher) wants to open one of your activities? It's not like they can
> access the actual data in any way. That's why, for example, you can do
> an ACTION_VIEW on a contact without the READ_CONTACTS permission.
>
> --
> Mark Murphy (a Commons
> Guy)http://commonsware.com|http://twitter.com/commonsguy
>
> Android Training in NYC: 30 April-2 May 2010:http://guruloft.com
--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
To unsubscribe, reply using "remove me" as the subject.