Thanks Mark, that's helpful. What I was trying to do was to get that example to work that I posted a link to.
Then I was going to try to figure out what I actually need. So far, I'm pretty stupid as far as Android permissions go. 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.

