I believe that is just a wording issue... Permission/Uses-Permission are 
probably the same... Seems to me that if you declare something in 
"Uses-Permission" it also means it is in the Permissions list.. kinda hard 
to use something without allowing it :)



On Tuesday, May 7, 2013 10:10:46 PM UTC+3, Palmer Eldritch wrote:
>
> Exactly - I consider it perfectly fine to request a permission for 
> _receiving_ - and I do exactly this :
>
>  <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" 
> />
> But I have no <permission> attribute in the manifest - so the relevant quote 
> from the 
> docs<http://developer.android.com/guide/topics/manifest/receiver-element.html#prmsn>:
>
> "The name of a permission *that broadcasters** *must have to send a 
> message to the broadcast receiver. If this attribute is not set, *the 
> permission set by the <application> element's permission attribute 
> applies to the broadcast receiver.* "
>
> Does not really apply. So it is strange that no warning is issued
>
> Quick tests (as in I just changed the Manifest - did not uninstall 
> reinstall) suggest that android:exported="false" does not make a difference 
> - adding android:exported="false" does not prevent the system from calling 
> my receiver (Froyo)
> *
> Quick* tests
>
> BTW - there is a bug with android.permission.RECEIVE_BOOT_COMPLETED" - 
> still NEW http://code.google.com/p/android/issues/detail?id=14044
>
> On Monday, May 6, 2013 1:26:26 AM UTC+3, Piren wrote:
>>
>> Why not ask for a permission for receiving? that's the same as there are 
>> permissions for reading contacts or call logs... the idea is to inform the 
>> user your app is doing something that they might not want to happen, like 
>> informing you the device just powered on which can be used to start an app 
>> without them knowing. Permissions aren't just for modifying things.
>>  
>> You don't define permission for the broadcaster since that broadcast is a 
>> system broadcast... 
>>
>> On Monday, May 6, 2013 1:13:27 AM UTC+3, Palmer Eldritch wrote:
>>
>>> What confuses me really is that I request a permission for _receiving_ a 
>>> particular intent (whose action is boot_completed) - I do not define 
>>> anywhere a permission the _broadcaster_ must request/hold
>>>
>>> Thanks
>>>
>>> PS : testing vs asking - I found about the 
>>> android.intent.action.QUICKBOOT_POWERON permission while browsing for an 
>>> answer to this question - don't think I need it but added it :)
>>>
>>> On Monday, May 6, 2013 12:18:25 AM UTC+3, Piren wrote:
>>>>
>>>> I'm not 100% positive only the system can call it, but i'm pretty sure 
>>>> about it. It depands on the security level of that specific permission and 
>>>> these are not easy to find out (i can't recall any documentation that 
>>>> lists 
>>>> that.. i think it is only available in the source code). It's something 
>>>> that you need to remember, some of these calls can only be made by the 
>>>> system... some of these, were only blocked to be system only in later 
>>>> versions of android (and as usual, there's barely any documentation of 
>>>> these) so sometimes code that worked before, just stops working.
>>>>  
>>>> To test Boot_Completed, just restart your device. that's why i did, 
>>>> that's also how i found our some HTC devices require you to also 
>>>> use "android.intent.action.QUICKBOOT_POWERON" (another tip ;-)) and don't 
>>>> forget you need the app to run at least once before (yet another tip :-D) 
>>>>  
>>>> If you want 0 warnings, tell the compiler to stop showing them :) 
>>>>  
>>>>  
>>>> On Sunday, May 5, 2013 11:07:12 PM UTC+3, Palmer Eldritch wrote:
>>>>
>>>>>
>>>>> On Sunday, May 5, 2013 6:58:39 PM UTC+3, Piren wrote:
>>>>>>
>>>>>> Did you read the answer you quoted?
>>>>>>>
>>>>>>> "IF you didnt set any permissions for it."
>>>>>>
>>>>>>
>>>>>> And back to my first answer, had you read the docs you would have 
>>>>>> seen this:
>>>>>>
>>>>>>> "The name of a permission that broadcasters must have to send a 
>>>>>>> message to the broadcast receiver. If this attribute is not set, the 
>>>>>>> permission set by the 
>>>>>>> <application><http://developer.android.com/guide/topics/manifest/application-element.html>
>>>>>>>  element's 
>>>>>>> permission<http://developer.android.com/guide/topics/manifest/application-element.html#prmsn>
>>>>>>>  attribute 
>>>>>>> applies to the broadcast receiver. "
>>>>>>
>>>>>>
>>>>>> Now, you didn't provide the Permission attribute of you manifest (nor 
>>>>>> the Uses-Permissions), but i'd bet a pretty penny that it has 
>>>>>> receive_boot_completed there...since you know.. it doesn't work without 
>>>>>> it.
>>>>>>
>>>>>  
>>>>> This makes sense - so since I ask for receive_boot_completed the 
>>>>> system checks my intent filter, sees the intent I filter for is 
>>>>> "android.intent.
>>>>> action.BOOT_COMPLETED" and automatically applies this permission to my 
>>>>> receiver ? So this receiver _requires permission_ and no warning is issued
>>>>> That is not so straightforward - does it mean that only the system can 
>>>>> call my receiver ?
>>>>>  
>>>>>
>>>>>>
>>>>>> BTW, some of the questions are just plain annoying which is why i 
>>>>>> ignored them and just let you figure it out yourself with the docs... 
>>>>>> "Does it mean that it won't work if exported="false" ?"  Why are you 
>>>>>> asking us? Instead of posting a question about it, isn't it easier to 
>>>>>> just 
>>>>>> do a quick test instead of relying on the memory of other people?  You 
>>>>>> already have the code ready.. just run the damn thing and check.
>>>>>>
>>>>> I could test in this case yes - but i wanted a general answer on all 
>>>>> similar intent filters and moreover i have no other app to call my 
>>>>> receiver 
>>>>> from - it's not a quick test
>>>>>  
>>>>>
>>>>>>
>>>>>> Also, considering this is only a warning, you're giving it way too 
>>>>>> much emphasis.
>>>>>>
>>>>>  
>>>>> I disagree - I do pay attention to warnings - I want none :) 
>>>>>
>>>>>>
>>>>>>
>>>>>> On Sunday, May 5, 2013 6:29:52 PM UTC+3, Palmer Eldritch wrote:
>>>>>>>
>>>>>>> Did you read the question ?
>>>>>>>
>>>>>>> "
>>>>>>> If Exported=True or Exported is not set and it has an Intent Filter, 
>>>>>>> you get a warning saying you didn't specify any permissions for it IF 
>>>>>>> you 
>>>>>>> didnt set any permissions for it.
>>>>>>> "
>>>>>>>
>>>>>>> I HAVE an intent filter and I get NO warning - I have posted the 
>>>>>>> manifest and specific questions
>>>>>>> Please read before posting - I feel a bit offended being redirected 
>>>>>>> to the docs after the effort I put in asking this
>>>>>>>
>>>>>>> On Sunday, May 5, 2013 10:22:07 AM UTC+3, Piren wrote:
>>>>>>>>
>>>>>>>> Did you read the docs? what's not to get here?
>>>>>>>>
>>>>>>>> http://developer.android.com/guide/topics/manifest/receiver-element.html#prmsn
>>>>>>>>
>>>>>>>> If Exported=False or not set and no IntentFilter, only your app can 
>>>>>>>> access it so it needs no permissions thus no warning.
>>>>>>>> If Exported=True or Exported is not set and it has an Intent 
>>>>>>>> Filter, you get a warning saying you didn't specify any permissions 
>>>>>>>> for it 
>>>>>>>> IF you didnt set any permissions for it.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Saturday, May 4, 2013 3:47:06 PM UTC+3, Palmer Eldritch wrote:
>>>>>>>>>
>>>>>>>>> Still interested in this
>>>>>>>>>
>>>>>>>>> 1. Why there is no warning :
>>>>>>>>>
>>>>>>>>>     <receiver <!-- no warning -->
>>>>>>>>>         android:name=".receivers.TriggerMonitoringBootReceiver"
>>>>>>>>>         android:enabled="false" >
>>>>>>>>>         <intent-filter>
>>>>>>>>>             <action 
>>>>>>>>> android:name="android.intent.action.BOOT_COMPLETED" />
>>>>>>>>>         </intent-filter>
>>>>>>>>>     </receiver>
>>>>>>>>>
>>>>>>>>> Does it mean that it won't work if exported="false" ? In this case 
>>>>>>>>> :
>>>>>>>>>
>>>>>>>>> 2. Which intents are meant to be exported with no warnings ? All 
>>>>>>>>> the intents in android.intent.action. namespace ?
>>>>>>>>>
>>>>>>>>> There are reports that contradict that - adding to general 
>>>>>>>>> confusion.
>>>>>>>>> See for instance :
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> http://stackoverflow.com/questions/11462936/exported-activity-does-not-require-permission-when-attempting-to-launch-from-a/11526028#comment18783318_11526028
>>>>>>>>>
>>>>>>>>> http://stackoverflow.com/questions/11875371/what-permission-should-i-use-to-receiver-of-android-notitications#comment15822652_11875525
>>>>>>>>>
>>>>>>>>> http://stackoverflow.com/questions/13517128/android-onbootreceiver-exported-receiver-does-not-require-permission#comment23027535_13517128
>>>>>>>>>
>>>>>>>>> http://stackoverflow.com/questions/16112470/android-exported-receiver-does-not-require-permission-on-receivers-meant-to
>>>>>>>>> http://stackoverflow.com/a/12180426/281545
>>>>>>>>>
>>>>>>>>> http://stackoverflow.com/questions/12718231/making-nfc-activity-private-without-androidexported-false
>>>>>>>>>
>>>>>>>>> http://stackoverflow.com/questions/14381807/how-to-stop-opening-the-application-from-other-application-in-android/14381976#14381976
>>>>>>>>>
>>>>>>>>> As you see both black and white are true so I would appreciator 
>>>>>>>>> some official feedback
>>>>>>>>> In short - when one has receivers that receive System intents like 
>>>>>>>>> "android.intent.action.BOOT_COMPLETED" and 
>>>>>>>>> "android.net.wifi.SCAN_RESULTS" 
>>>>>>>>> - setting the `exported="false"` will prevent the receivers from 
>>>>>>>>> working ? 
>>>>>>>>> Is this the reason why "Exported receiver does not require 
>>>>>>>>> permission" 
>>>>>>>>> warning is not displayed ? Which intents fall into this category ?
>>>>>>>>>
>>>>>>>>> Thanks :)
>>>>>>>>>
>>>>>>>>> On Saturday, April 20, 2013 3:44:52 PM UTC+3, Palmer Eldritch 
>>>>>>>>> wrote:
>>>>>>>>>>
>>>>>>>>>> I have the following receivers declared :
>>>>>>>>>> <pre>
>>>>>>>>>>     <receiver <!-- no warning -->
>>>>>>>>>>         android:name=".receivers.TriggerMonitoringBootReceiver"
>>>>>>>>>>         android:enabled="false" >
>>>>>>>>>>         <intent-filter>
>>>>>>>>>>             <action 
>>>>>>>>>> android:name="android.intent.action.BOOT_COMPLETED" />
>>>>>>>>>>         </intent-filter>
>>>>>>>>>>     </receiver>
>>>>>>>>>>     <receiver <!-- no warning -->
>>>>>>>>>>         android:name=".receivers.ScanResultsReceiver"
>>>>>>>>>>         android:enabled="false" >
>>>>>>>>>>         <intent-filter>
>>>>>>>>>>             <action android:name="android.net.wifi.SCAN_RESULTS" 
>>>>>>>>>> />
>>>>>>>>>>         </intent-filter>
>>>>>>>>>>     </receiver>
>>>>>>>>>> </pre>
>>>>>>>>>>
>>>>>>>>>> These receivers are exported - right ? If I put 
>>>>>>>>>> `exported="false"` would they still be able to work ?
>>>>>>>>>>
>>>>>>>>>> Thanks
>>>>>>>>>>
>>>>>>>>>

-- 
-- 
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
--- 
You received this message because you are subscribed to the Google Groups 
"Android Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to