WAI
Status Update
Comments
ha...@gmail.com <ha...@gmail.com> #2
I have the same problem (used to work in 8.0 and stopped in 8.1 preview 1).
I call it from a `Fragment` attached as a headless-fragment (without any own view).
My Code (this returns always `<unknown_ssid>`):
```kotlin
private val wifiManager: WifiManager by lazy { context!!.applicationContext.getSystemService(Context.WIFI_SERVICE) as WifiManager }
private val isInCorrectWifi: Boolean
get() {
val connectionInfo = wifiManager.connectionInfo
if (SupplicantState.COMPLETED != connectionInfo.supplicantState) {
debug("isInCorrectWifi > not connected to any wifi")
return false
}
val dataReaderSSIDInMarks = "\"testWifi\""
if (dataReaderSSIDInMarks.isEmpty() || dataReaderSSIDInMarks != connectionInfo.ssid) {
debug("isInCorrectWifi: not connected to correct wifi (should be $dataReaderSSIDInMarks)")
return false
}
return true
}
```
I call it from a `Fragment` attached as a headless-fragment (without any own view).
My Code (this returns always `<unknown_ssid>`):
```kotlin
private val wifiManager: WifiManager by lazy { context!!.applicationContext.getSystemService(Context.WIFI_SERVICE) as WifiManager }
private val isInCorrectWifi: Boolean
get() {
val connectionInfo = wifiManager.connectionInfo
if (SupplicantState.COMPLETED != connectionInfo.supplicantState) {
debug("isInCorrectWifi > not connected to any wifi")
return false
}
val dataReaderSSIDInMarks = "\"testWifi\""
if (dataReaderSSIDInMarks.isEmpty() || dataReaderSSIDInMarks != connectionInfo.ssid) {
debug("isInCorrectWifi: not connected to correct wifi (should be $dataReaderSSIDInMarks)")
return false
}
return true
}
```
ch...@gmail.com <ch...@gmail.com> #3
It looks like you now need `android.permission.ACCESS_COARSE_LOCATION` (I think `ACCESS_FINE_LOCATION` will work as well).
I've tested it and it seems working now.
I've tested it and it seems working now.
ha...@gmail.com <ha...@gmail.com> #4
I added ACCESS_COARSE_LOCATION and ACCESS_FINE_LOCATION, it is not working. My case is different.
I think it cannot get the SSID if you are not running a activity. I think location permission is not required.
I think it cannot get the SSID if you are not running a activity. I think location permission is not required.
pa...@gmail.com <pa...@gmail.com> #5
Thank you for reporting this issue. For us to further investigate this issue, please provide the following additional information:
Steps to reproduce
Please provide source code or apk of a sample application to reproduce the issue.
Also kindly mention the steps to be followed for reproducing the issue with the given sample application.
Frequency
How frequently does this issue occur? (e.g 100% of the time, 10% of the time)
Steps to reproduce
Please provide source code or apk of a sample application to reproduce the issue.
Also kindly mention the steps to be followed for reproducing the issue with the given sample application.
Frequency
How frequently does this issue occur? (e.g 100% of the time, 10% of the time)
pi...@gmail.com <pi...@gmail.com> #6
Source:
Project for the test is attached.
---------------------------------------------
Step to reproduce the problem:
1. Connect to a WIFI network.
2. When you open this app manually, it start BGService and show the correct WIFI's SSID value using a notification.
3. Reboot the phone. Do NOT open the app this time. Wait and let boot complete receiver to start the same BGService in the background, and show WIFI's SSID value with the notification.
(this time the SSID value is "<unknown SSID>", which is incorrect)
---------------------------------------------
Frequency:
100%
Project for the test is attached.
---------------------------------------------
Step to reproduce the problem:
1. Connect to a WIFI network.
2. When you open this app manually, it start BGService and show the correct WIFI's SSID value using a notification.
3. Reboot the phone. Do NOT open the app this time. Wait and let boot complete receiver to start the same BGService in the background, and show WIFI's SSID value with the notification.
(this time the SSID value is "<unknown SSID>", which is incorrect)
---------------------------------------------
Frequency:
100%
tr...@gmail.com <tr...@gmail.com> #7
(sorry I used the wrong account to post the source, please use this one)
Source:
Project for the test is attached.
---------------------------------------------
Step to reproduce the problem:
1. Connect to a WIFI network.
2. When you open this app manually, it start BGService and show the correct WIFI's SSID value using a notification.
3. Reboot the phone. Do NOT open the app this time. Wait and let boot complete receiver to start the same BGService in the background, and show WIFI's SSID value with the notification.
(this time the SSID value is "<unknown SSID>", which is incorrect)
---------------------------------------------
Frequency:
100%
Source:
Project for the test is attached.
---------------------------------------------
Step to reproduce the problem:
1. Connect to a WIFI network.
2. When you open this app manually, it start BGService and show the correct WIFI's SSID value using a notification.
3. Reboot the phone. Do NOT open the app this time. Wait and let boot complete receiver to start the same BGService in the background, and show WIFI's SSID value with the notification.
(this time the SSID value is "<unknown SSID>", which is incorrect)
---------------------------------------------
Frequency:
100%
st...@gmail.com <st...@gmail.com> #8
yes, having the same issue with SSIDs https://issuetracker.google.com/issues/68498876
Using getConnectionInfo() to get the SSID (via getSSID) now retrieves <unknown SSID> or null. Tried with different SSIDs with the same result.
Using getConnectionInfo() to get the SSID (via getSSID) now retrieves <unknown SSID> or null. Tried with different SSIDs with the same result.
er...@gmail.com <er...@gmail.com> #9
I've already provided further information above, including the sample project src, steps to reproduce the problem, and frequency, but it seems that no one is following the issue. What should I do???
su...@gmail.com <su...@gmail.com> #10
I have been looking for workarounds as well, is there any other way to get this info or do we need additional permissions for 8.1. Any info would be appreciated :)
Thanks!
Thanks!
sa...@gmail.com <sa...@gmail.com> #11
Seems that this happens if the targetSdkVersion is 26. If it's set to `targetSdkVersion 25` it works fine
an...@gmail.com <an...@gmail.com> #12
No, I think it is not related to targetSdkVersion, my sample project provided is targeting 25, and my production project is targeting 22. My observation is if it is called from activity, it will return correct SSID. If this is called from a service, it will return <unknown SSID>.
ca...@gmail.com <ca...@gmail.com> #13
Hi Google, is anyone following this issue?
Android Version: 8.1.0
Model: nexus 5x
Security patch level: Oct 5, 2017
Build Number: OPP5.170921.005
Problem Description:
I notice that I cannot read connected WIFI network's SSID after reboot. I don't know what is the problem.
I have a service running in background and a boot complete receiver that start that service. There is also a MainActivity, it just start the service and do nothing. The service print print WIFI's SSID for every minute.
Results:
When the service is started from MainActivity, the service can print WIFI's SSID correctly for each iteration.
When the service is started from boot complete receiver (restart the phone), wifiInfo.getSSID() always return <unknown_ssid>. (which is not the correct SSID)
Expected results:
It should always print the correct SSID, no matter how I start the service
Step to reproduce the problem:
1. Connect to a WIFI network.
2. When you open this app manually, it start BGService and show the correct WIFI's SSID value using a notification.
3. Reboot the phone. Do NOT open the app this time. Wait and let boot complete receiver to start the same BGService in the background, and show WIFI's SSID value with the notification.
(this time the SSID value is "<unknown SSID>", which is incorrect)
---------------------------------------------
Frequency:
100%
Android Version: 8.1.0
Model: nexus 5x
Security patch level: Oct 5, 2017
Build Number: OPP5.170921.005
Problem Description:
I notice that I cannot read connected WIFI network's SSID after reboot. I don't know what is the problem.
I have a service running in background and a boot complete receiver that start that service. There is also a MainActivity, it just start the service and do nothing. The service print print WIFI's SSID for every minute.
Results:
When the service is started from MainActivity, the service can print WIFI's SSID correctly for each iteration.
When the service is started from boot complete receiver (restart the phone), wifiInfo.getSSID() always return <unknown_ssid>. (which is not the correct SSID)
Expected results:
It should always print the correct SSID, no matter how I start the service
Step to reproduce the problem:
1. Connect to a WIFI network.
2. When you open this app manually, it start BGService and show the correct WIFI's SSID value using a notification.
3. Reboot the phone. Do NOT open the app this time. Wait and let boot complete receiver to start the same BGService in the background, and show WIFI's SSID value with the notification.
(this time the SSID value is "<unknown SSID>", which is incorrect)
---------------------------------------------
Frequency:
100%
pa...@gmail.com <pa...@gmail.com> #14
Hi, my app still has this issue, more than a hundred user with Google Pixels. Tried several different ways including making sure that the SupplicantState is completed and no luck
ub...@gmail.com <ub...@gmail.com> #15
Engineering team have fixed a security loophole, so that when application is in background, it will not be able to access SSID.
Hence closing this issue as Working As Intended.
Hence closing this issue as Working As Intended.
al...@gmail.com <al...@gmail.com> #16
So the intention was to break things?
cy...@gmail.com <cy...@gmail.com> #17
Please add a user permission to allow this for specific tasks (especially Tasker). I rely on it in Tasker to
- automatically do automatically apply different settings and behavior while I'm at home
- provide a warning notification when WiFi is accidentally turned off (which my wife keeps accidentally doing when swiping down the notification bar)
- change headphone volumes based on connection to specific WiFi networks (as lower battery proxy for location)
I was considering upgrading my Nexus 6 to a Pixel 2 since the Nexus 6 isn't getting security updates any more, but I'll be forced to stick with my Nexus 6 (and keep my wife's Nexus 5x on Android 8.0) until this unwanted "bug" is removed from the latest code.
- automatically do automatically apply different settings and behavior while I'm at home
- provide a warning notification when WiFi is accidentally turned off (which my wife keeps accidentally doing when swiping down the notification bar)
- change headphone volumes based on connection to specific WiFi networks (as lower battery proxy for location)
I was considering upgrading my Nexus 6 to a Pixel 2 since the Nexus 6 isn't getting security updates any more, but I'll be forced to stick with my Nexus 6 (and keep my wife's Nexus 5x on Android 8.0) until this unwanted "bug" is removed from the latest code.
ko...@protonmail.com <ko...@protonmail.com> #18
Why did you break something like this? Not only does it stop programs from being able to read current internet status, it also immediately disconnects apps that were using the internet on screen off.
Please fix this immediately. Too many people rely on background data when the screen is off, that includes reading WiFi access.
I want 8.0 back until this is fixed!
Please fix this immediately. Too many people rely on background data when the screen is off, that includes reading WiFi access.
I want 8.0 back until this is fixed!
za...@gmail.com <za...@gmail.com> #19
Does this happen when NOT setting targetSdkVersion to oreo? Thinking of notification-channels, they are not needed until the app "says that it is supported" (by setting targetSdkVersion to the new version).
So when the app does not change, it should continue to work.
Or is this different and more like a "security fix" which affects all apps?
So when the app does not change, it should continue to work.
Or is this different and more like a "security fix" which affects all apps?
pa...@gmail.com <pa...@gmail.com> #20
Hi,
I can confirm asking for location permission solves the issue.
Like this
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
I didn't find any documentation that states that this should be the way to do it.
This should be a separate permission since asking for something so broad as the location can create distrust from the user.
Using a previous SDK version doesn't help either for devices with Android 8.1
Thanks!
I can confirm asking for location permission solves the issue.
Like this
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
I didn't find any documentation that states that this should be the way to do it.
This should be a separate permission since asking for something so broad as the location can create distrust from the user.
Using a previous SDK version doesn't help either for devices with Android 8.1
Thanks!
bo...@gmail.com <bo...@gmail.com> #21
I'm on Android 8.1.0 and can't read the SSID or BSSID from WifiManager in the foreground or background.
I can't read the SSID/BSSID from WifiManager.getConnectionInfo inside of a BroadcastReceiver or Activity, with or without ACCESS_FINE_LOCATION.
I *can* read the SSID (but not BSSID) via ConnectivityManager.getNetworkInfo inside an Activity and BroadcastReceiver, with or without ACCESS_FINE_LOCATION.
Changing build or target sdk versions does nothing.
This is a pain and will negatively impact my UI for users on 8.1 :/
I can't read the SSID/BSSID from WifiManager.getConnectionInfo inside of a BroadcastReceiver or Activity, with or without ACCESS_FINE_LOCATION.
I *can* read the SSID (but not BSSID) via ConnectivityManager.getNetworkInfo inside an Activity and BroadcastReceiver, with or without ACCESS_FINE_LOCATION.
Changing build or target sdk versions does nothing.
This is a pain and will negatively impact my UI for users on 8.1 :/
[Deleted User] <[Deleted User]> #22
@20
I submitted the feature request to restrict SSID/BSSID of the currently connected wifi network for apps without location permission.
A single valid BSSID is enough to deduce location with very good precision, hence coarse_location permission is needed and you need to educate your users.
This change has taken effective since 8.1.
I submitted the feature request to restrict SSID/BSSID of the currently connected wifi network for apps without location permission.
A single valid BSSID is enough to deduce location with very good precision, hence coarse_location permission is needed and you need to educate your users.
This change has taken effective since 8.1.
gu...@gmail.com <gu...@gmail.com> #23
@22
I don't disagree that a permission is necessary, you are right and it's a loophole. The issue is that there's no documentation (for no one call it users or developers). Basically right now I have to send the users (savy ones) to a bug tracker so they can see that for themselves.
I don't disagree that a permission is necessary, you are right and it's a loophole. The issue is that there's no documentation (for no one call it users or developers). Basically right now I have to send the users (savy ones) to a bug tracker so they can see that for themselves.
[Deleted User] <[Deleted User]> #24
@23
There exists the documentation:
https://developer.android.com/reference/android/net/wifi/WifiManager#getconnectioninfo
However they failed to mention that the part " requires the same permissions as getScanResults()" only applies for Android 8.1+
There exists the documentation:
However they failed to mention that the part " requires the same permissions as getScanResults()" only applies for Android 8.1+
ja...@free.fr <ja...@free.fr> #25
@23 Great, thanks
ja...@gmail.com <ja...@gmail.com> #26
Let totem live!
gr...@gmail.com <gr...@gmail.com> #27
[Comment deleted]
re...@gmail.com <re...@gmail.com> #28
I'm linux user. flash plugins have heavy resouce consuption. Why I can see with totem you tube videos in low quality and don't in high. It's this correct?
je...@google.com <je...@google.com>
xm...@gmail.com <xm...@gmail.com> #29
Okay I don't know anything about these you too whatever videos of people in here 10 the green and some people that but I don't like me. Don't think I know you probably could be My family gonna be like 2 sisters they don't like me because ? I like to make a report. The people the ribbon hungry spec this is the 2011 . Tell me how 1 can do these. Thank you very much
vi...@gmail.com <vi...@gmail.com> #30
#29 What on Earth are you talking about?
ho...@gmail.com <ho...@gmail.com> #31
#30 That's probably how Flash video artifacts affect people. Well, that or heavy drug abuse.
to...@gmail.com <to...@gmail.com> #32
#30 or we’re just seeing Google Translate in action
mc...@gmail.com <mc...@gmail.com> #33
ебланские разрабы че вы сделали с ютубом об стену убейтесь лучше ради денег пидары
ru...@googlemail.com <ru...@googlemail.com> #34
Heute nicht mehr
dm...@gmail.com <dm...@gmail.com> #35
Does anyone here develop with the YouTube's Data API V3 and iOS? Would you happen to know how the "TubeX" (https://itunes.apple.com/us/app/tubex-videos-music-for-youtube/id939906112?mt=8 ) iOS app loads subscription videos as fast and as accurately as it does as opposed to the regular activities.list() call with the home parameter? They seem to do something with YouTube's site right after you login.
Feel free to comment if you know anything. Thanks
Feel free to comment if you know anything. Thanks
na...@gmail.com <na...@gmail.com> #36
Support for all
to...@gmail.com <to...@gmail.com> #37
someone _please_ clean up this thread and protect it from random comments.
ac...@gmail.com <ac...@gmail.com> #38
Livestreamer can take high quality stream from YouTube, Twitch and others and pipe it to players like VLC and MPC (win).
Since Livestreamer is open, can its code be integrated to Totem?
http://docs.livestreamer.io/
Since Livestreamer is open, can its code be integrated to Totem?
be...@gmail.com <be...@gmail.com> #39
Since this is a google bug, it'd probably be a good idea to mention livestreamer to totem devs (via irc, email, or a bug/feature req), and then comment here if the feature is accepted. Totem devs would probably be better able to comment on whether it's even possible, too.
al...@gmail.com <al...@gmail.com> #40
The totem maintainer is the reporter of this bug, so he's already aware of what happens here.
mi...@gmail.com <mi...@gmail.com> #41
..
mi...@gmail.com <mi...@gmail.com> #42
..
na...@gmail.com <na...@gmail.com> #43
Open for all progress of also
ma...@google.com <ma...@google.com> #44
Thank you for this feature request. There are no plans to make raw video streams available to third-party players at this time.
Supported players for embedding in developer applications are available here:https://developers.google.com/youtube/iframe_api_reference
Players available include web-based iframe players and Android native players (via our SDK.)
Supported players for embedding in developer applications are available here:
Players available include web-based iframe players and Android native players (via our SDK.)
zu...@gmail.com <zu...@gmail.com> #45
To allow high-quality integration with a native open-source video player, follow these best practices:
1 Choose the Right Open-Source Video Player**
Kinemaster** (libVLC) – Highly flexible, supports almost all formats.https://kinemasapk.net/
MPV** – Lightweight and customizable, supports GPU acceleration.
ExoPlayer** (for Android) – Google’s open-source player with adaptive streaming.
Fmpeg** – Powerful for encoding, decoding, and streaming.
2. Ensure High-Quality Playback**
Use **hardware acceleration** (VA-API, VDPAU, or MediaCodec).
- Optimize buffering with **adaptive streaming** (DASH, HLS).
- Support **high-resolution formats** (4K, HDR, AV1).
3. Seamless Integration with API or SDK
- **VLC (libVLC SDK)**
- Available for Android, iOS, and desktop applications.
- Provides advanced playback controls.
- **MPV (libmpv API)**
- Offers Lua scripting and JSON IPC for custom UI integration.
- **ExoPlayer (Android)**
- Supports DRM-protected content and customizable UI.
4. Enhance Performance & UX**
- Implement **gesture controls** (seek, volume, brightness).
- Support **background playback** and **picture-in-picture (PiP)** mode.
- Reduce latency using **low-latency streaming protocols** like WebRTC.
Would you like implementation guidance for a specific platform?
1 Choose the Right Open-Source Video Player**
Kinemaster** (libVLC) – Highly flexible, supports almost all formats.
MPV** – Lightweight and customizable, supports GPU acceleration.
ExoPlayer** (for Android) – Google’s open-source player with adaptive streaming.
Fmpeg** – Powerful for encoding, decoding, and streaming.
2. Ensure High-Quality Playback**
Use **hardware acceleration** (VA-API, VDPAU, or MediaCodec).
- Optimize buffering with **adaptive streaming** (DASH, HLS).
- Support **high-resolution formats** (4K, HDR, AV1).
3. Seamless Integration with API or SDK
- **VLC (libVLC SDK)**
- Available for Android, iOS, and desktop applications.
- Provides advanced playback controls.
- **MPV (libmpv API)**
- Offers Lua scripting and JSON IPC for custom UI integration.
- **ExoPlayer (Android)**
- Supports DRM-protected content and customizable UI.
4. Enhance Performance & UX**
- Implement **gesture controls** (seek, volume, brightness).
- Support **background playback** and **picture-in-picture (PiP)** mode.
- Reduce latency using **low-latency streaming protocols** like WebRTC.
Would you like implementation guidance for a specific platform?
bi...@gmail.com <bi...@gmail.com> #46
Choose the Right Open-Source Video Player Inshot – Highly flexible, supports almost all formats. https://inshotspros.com/
Description
YouTube Data API
Request summary:
The YouTube website terms of service, as well as the API terms of service disallow direct access to video streams.
Totem, the GNOME movie player, used to access those streams directly to get high-quality Web-M streams when available. This meant that the video didn't use patent-encumbered codecs, and that the video playback was integrated with the system (sound handled through pulseaudio, hardware accelerated video decoding, etc.)
YouTube only allows access to the videos through:
- low-quality 3GPP streams over RTSP (supported, but low-quality and patent encumbered)
- HTML5 interface (would require another implementation of Totem's video canvas)
- Flash player (proprietary)
None of those options are satisfactory for Totem's usage.
Possible options include:
- addition of a YouTube watermark and specific behaviour when clicked (like launching the video's page in a web browser)
- additions of adverts before playback, or as part of the playback
- allowing direct access to Web-M streams, either through HTTP or RTSP
Those options are not exclusive of each other, and the restrictions could be listed in the terms of service of the website, or the API, as they are now.