1
134
submitted 1 month ago* (last edited 1 month ago) by MargotRobbie@lemmy.world to c/android@lemmy.world

To celebrate a particular movie's nominations for the Golden Globes next Sunday, Jan 7, we are hosting our very own Golden Lemmy award for Best Android Device on !android@lemmy.world.

Rules are simple, tell us about your favorite Android phone from 2023 in the top level comment, and the device with the most up votes wins the esteemed and coveted Golden Lemmy Award, along with 1 Lemmy Silver.

Our regular discussion will resume in 2 weeks.

2
37
submitted 5 months ago* (last edited 5 months ago) by MargotRobbie@lemmy.world to c/android@lemmy.world

Previously: Submission Statement Edition

Haven't done these in a while, so let's get started.

  1. Since we haven't really heard any feedback one way or the other, rule 8 is now official. To be fair, we've had a lot less microblog posts than I expected (only one Twitter/X post in the last month even after I waited longer than the initial 1-2 weeks expected, and that was a crosspost.)
  • Again, the rules are always a work in progress, feel free to give your two cents here whenever you like.
  1. As you guys know, PipedLinkBot went completely insane 2 days ago and looks like it's temporarily shut down. So, I'd like to use this opportunity to explain why I banned the bot pretty much immediately after our community reopened. (And gloat a bit, of course)
  • Even though I do agree with the principle of using open source, privacy focused frontend instead of using Youtube directly, I have a real problem with using a bot to respond every time somebody posts a Youtube link. It feels like spam, and it doesn't feel like it serves any utility besides pushing an agenda (even though many people here would agree with it). Most people have seen it around here enough to use pipedvideo if they wanted it to use it already.

  • I think it's always been a rage inducing part of the reddit experience that you see you received a response to your comment, but only have it been a bot smugly correcting your grammar or tell you all your letters are in order or something useless like that. So, for this place, I would like to make sure that everyone you talk to here is a real person as much as possible, because people inspire people to be greater, but bots don't.

3
4

I've just bought a new-to-me Xperia 10 V. It took me a while, but I managed to root the device, forcibly remove the bloat I didn't want, and apply some system tweaks.

There are two things that persist in frustrating me. First, I cannot shift the clock back over to the right. Shizuku & System UI Tuner appear to have no effect on this, and until I can compile a copy of LineageOS, I appear to be stuck with it in the wrong place.

The second is a little more egregious, and that's this new lockscreen/notification media control. It's horrendous. In fact, it's a step back in functionality, because the FF/RW buttons are too small to press (and sometimes don't work at all!). Yet, somehow, the notification manages to be larger than it used to be.

I'd really like to get rid of this new media notification UI, and return to the old style of media control where it was indistinguishable to other notifications bar the media controls. Short of compiling Android... 10?11? for a phone released last year, what can I do to accomplish this?

4
11
submitted 7 hours ago* (last edited 7 hours ago) by salvador@lemmy.world to c/android@lemmy.world

I have an app which polls a remote server by sending to it its cache GPS location. Sometimes a remote server will ask for live location and an app must send it to it.


object MyLocationManager {
    val providers = listOf(
        LocationManager.GPS_PROVIDER,
        "fused",
        LocationManager.NETWORK_PROVIDER,
        LocationManager.PASSIVE_PROVIDER,
    )


    fun getCached(ctx: Context, locationManager: LocationManager): Location? {
        for (provider in providers) {
            when (provider) {
                "fused" -> {
                    val fusedLocationClient =
                        LocationServices.getFusedLocationProviderClient(ctx)
                    val fusedLocationTask = fusedLocationClient.lastLocation
                    val fusedLocation = getTaskResult(fusedLocationTask)
                    if (fusedLocation != null) {
                        return fusedLocation
                    }
                }
                else -> {
                    if (locationManager.isProviderEnabled(provider)) {
                        val lastKnownLocation = locationManager.getLastKnownLocation(provider)
                        Log.d(
                            TAG,
                            "Provider: $provider, Last Known Location: $lastKnownLocation"
                        )

                        if (lastKnownLocation != null) {
                            return lastKnownLocation
                        }
                    }
                }
            }
        }

        return null
    }

    fun getLive(ctx: Context, locationManager: LocationManager): Location? {
        val locationListener = object : LocationListener {
            override fun onLocationChanged(location: Location) {

                //This works correctly!
                //
                //1) how to save its result? How to save it into cache?
                //2) or how to return it from here?
                Log.d(TAG, "onLocationChanged: ${location.latitude}, ${location.longitude}")

                stopLocationUpdates()
            }

            private fun stopLocationUpdates() {
                val fusedLocationClient = LocationServices.getFusedLocationProviderClient(ctx)

                try {
                    // Stop location updates
                    fusedLocationClient.removeLocationUpdates(locationCallback)
                    Log.d(TAG, "Location updates stopped")
                } catch (e: SecurityException) {
                    Log.e(TAG, "SecurityException while stopping location updates: ${e.message}")
                }
            }

            private val locationCallback = object : LocationCallback() {
                override fun onLocationResult(locationResult: LocationResult) {
                    super.onLocationResult(locationResult)
                    val location = locationResult.lastLocation
                    if (location != null) {
                        onLocationChanged(location)
                    } else {
                        Log.e(TAG, "Received null location in onLocationResult")
                    }
                }
            }
        }

        for (provider in providers) {
            when (provider) {
                LocationManager.GPS_PROVIDER -> {

                    //obsolete, in the last Android versions
                    val _locationRequest = LocationRequest.create()
                        .setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY)
                        .setInterval(0)
                        .setFastestInterval(0)

                    val fusedLocationClient = LocationServices.getFusedLocationProviderClient(ctx)
                    val locationResult: Task = fusedLocationClient.getLocationAvailability()

                    if (!Tasks.await(locationResult).isLocationAvailable) {
                        return null
                    }

                    val locationTask: Task = fusedLocationClient.getCurrentLocation(
                        LocationRequest.PRIORITY_HIGH_ACCURACY,
                        null
                    )

                    return Tasks.await(locationTask)
                }

                "fused" -> {
                    val apiAvailability = GoogleApiAvailability.getInstance()
                    val resultCode = apiAvailability.isGooglePlayServicesAvailable(ctx)

                    if (resultCode == ConnectionResult.SUCCESS) {
                        val fusedLocationClient = LocationServices.getFusedLocationProviderClient(ctx)
                        val fusedLocationTask = fusedLocationClient.lastLocation
                        val fusedLocation = getTaskResult(fusedLocationTask)
                        if (fusedLocation != null) {
                            return fusedLocation
                        }
                    } else {
                        Log.w(TAG, " Google Play Services aren't available, can't use fused")
                    }

                }

                else -> {
                    if (locationManager.isProviderEnabled(provider)) {
                        locationManager.requestSingleUpdate(
                            provider,
                            locationListener,
                            Looper.getMainLooper()
                        )

                        val lastKnownLocation = locationManager.getLastKnownLocation(provider)
                        if (lastKnownLocation != null) {
                            return lastKnownLocation
                        }
                    }
                }
            }
        }

        return null
    }
}


An issue is that the code for obtaining GPS location doesn't work properly. Firstly, I don't know whether the approach in the code is correct. Secondly, I don't know how to properly to return the GPS coordinates from a callback -- see the comments. Thirdly, I don't know how to force it to store the latest coordinates that it's obtained into cache.

And there're some functions that's been derprecated in the latest versions of Android, particularly in Android 10.

How to do all of this?

My device is rooted.

5
13

Android 15 (code named Vanilla Ice Cream) is set to revolutionize user experiences, promising enhanced productivity, superior media capabilities, optimized battery impact

6
38

Hi there, I've had a broken phone lying around for ages, only kept it as I know there are some pictures and files I wish I could gain access to again. I've tried a variety of methods gaining access to the files, but it doesn't seem possible as I cannot actually use the screen to "allow usb transfer" etc.. Is there any methods I might have missed or something that could help me retrieve these files?

It's an Huawei Mate 10 Pro.

Any tips, tricks and recommendations are appreciated 🌻

7
8
submitted 15 hours ago by freal@feddit.de to c/android@lemmy.world

Hey folks! Here are some fresh renders of the upcoming Pixel Fold 2 that I made based on the recent Pixel Fold 2 leak by Android Authority. The renderings show the device in its entirety, alongside some (speculative) colorways. Click the link to see all images!

8
13
9
30
submitted 1 day ago* (last edited 1 day ago) by jet@hackertalks.com to c/android@lemmy.world

On stock aosp, and pixel android, I can auto rotate the phone up, left, or right, but if I turn the phone upside down the screen won't rotate.

Is there a way to enable upside down rotation? I think it would be quite useful.

I.e. When phone is charging, or hanging phone up by a strap, or when using a usb-c device and you want to prop it up on a desk

10
24
submitted 1 day ago by TexNox@feddit.uk to c/android@lemmy.world

Hello all, so something recently changed with the Google photos app on my pixel 6 and it's automatically uploaded all my photos filled the space out and is now complaining angrily that I've used all the space.

I don't want to use Google backup, I have a OneDrive account and it backs up all my photos. The Google backup is redundant but now it's deprecated my photos app by filling it with pointless warning messages.

11
26
submitted 2 days ago* (last edited 1 day ago) by fine_sandy_bottom@discuss.tchncs.de to c/android@lemmy.world

If anyone could point me to some information or guide about this I'd really appreciate that.

I think the official com.android.gsm and friends need to be uninstalled first. I've tried that with adb, console reports "success", Google Play Services is no longer listed in Settings > Apps.

But... if I try to install MicroG via Fdroid or Droid-ify it goes through the install process, there's no error, but MicroG Core is not shown as "installed". If I try to install the apk with adb it says the currently installed version is newer than the one I'm trying to install?

microg.org seems to just assume you know how to install.

I read something about signature spoofing but I thought that was only for older devices.

Any insights / suggestions will be greatly appreciated.

Edit: I think this is the answer: https://xdaforums.com/t/guide-degoogle-any-device-and-install-microg.4058743/

12
22
submitted 2 days ago* (last edited 2 days ago) by PotjiePig@lemmy.world to c/android@lemmy.world

High Midrange or old Top Range. £450 - £850 ish.

I went from a LG G3 to OnePlus 3T to a Xiaomi K30 Ultra (variant of a Poco F2 Pro, Chinese ROM). My partner went from and old iPhone to the same. Loved the phone and the pop up camera, but the Chinese ROM, and in many aspects, Xiaomi bloatware drove us batty. Awful user experience. Is their Global ROM also rubbish?

Now it's time for a new phone, I liked Xiaomi bang for buck but I'm wary of its software experience on their global devices (does Google assistant work out the box? Does clicking on a link in a browser route you to their horrible GetApps store? Does G maps locations work? Do they lock out custom launchers? Do notifications and syncing get pushed correctly or does the battery Optimizer aggressively shut all things down in the background?)

Our priority list as follows:

  1. AMOLED 6.5 - 6.7 inch
  2. Great camera, ideally with a telephoto
  3. Waterproof
  4. Not too plasticy a build
  5. A smooth android experience with minimal bloatware
  6. Not flagship prices but mid tier, to mid upper tier.
  7. She wants a pretty colour like purple

So my question is, what phones should be on my radar?

Current list:

Pixel 7 / pro (8 I think is too pricey, but that phone is my personal benchmark)

OPPO Reno 10+ (also a bit steep but she wants the purple)

OnePlus 12 (how's the camera? I loved my 3T but have heard they aren't as good as they used to be)

S22+ or S22 Ultra refurbed (cons a year old but has purple an IP68 is it a better pick than the OPPO?)

Xiaomi 12T or similar, suggestions?

Realme GT5 pro looks sick, but I have Chinese ROM ptsd

Thanks for advice. My phone knowledge is a bit rusty and their must be a bunch out there that I would never think to look at.

13
29

not particularly exceptional android smartphone with aegis authenticator from f-droid installed to 2fa.

I authenticated and logged in but my device kept receiving codes every 15 seconds 'till I stopped aegis.

Is this normal? Seems like a waste of battery.

14
47
submitted 2 days ago* (last edited 2 days ago) by MECHAGIC@lemmy.world to c/android@lemmy.world

I'm currently using readera but it's not that good (text scaling is behind a paywall)

Edit:the ability to put stuff into categories would be neat btw

15
35
submitted 2 days ago by brokenlcd@feddit.it to c/android@lemmy.world

When android auto first came out i remember that on the market appeared android sticks that were meant to expand the functionality of android auto. They where like the android auto wireless adaptors that are around nowdays but where a standalone android device that used a phone's hotspot for an internet connection. Are these sticks still around or are they completely gone?

16
18
submitted 2 days ago by free@lemmy.world to c/android@lemmy.world

As per title, I can get lyrics of songs/albums but surely there is the next level where you can karaoke your favourite songs. Thanks for reading.

17
59
submitted 4 days ago* (last edited 4 days ago) by jared@mander.xyz to c/android@lemmy.world

Anyone try any good launchers lately? Something with interesting features or workflow.

18
191
19
153
submitted 6 days ago by celmit@lemmy.ca to c/android@lemmy.world
20
36
submitted 5 days ago* (last edited 5 days ago) by catculation@lemmy.zip to c/android@lemmy.world
21
44
22
16

So I've got a pretty old smartphone and have replaced the battery once already. I've kept track of wear with the help of accubattery, since the phone didn't have that built in.

However, enshittification is encroaching, and I'm now looking for alternatives. What are some decent options?

23
14
submitted 6 days ago* (last edited 6 days ago) by salvador@lemmy.world to c/android@lemmy.world

I have a rooted Android 10. And I've written a service (off the class Service) which I want to run under too, in background. A service uses a microphone and location. It's written in Kotlin.

I've not found any information of how to run a service on a rooted device under root. I've found some, about running some commands in a service (code) itself under root, though, but it may be only a part of what I need.

How to do it?

Essentially, I want my service to run forever, with elevated preveligies, get itself restarted if it fails, gets killed by Android.


Also, I've tried to copy it into /system and /system/init directories, but I haven't been able to, due to "read-only file system". Nor have I been able to remount it to make it writteable. I've managed to make the / writteable, but it didn't allow me to copy my service in /system nonetheless.

24
4

Like in title. Modern Android permission system is really annoying. It assumes I do not trust installed apps and I believe was made to promote loose installing of whatever crap like loyalty cards apps, while I only install a couple of trusted apps all from F-Droid. Such module would enable faster installation of the systems and less irritation when I have to give app a permission third time this month (Android now can decide for myself and revoke permission when it thinks it's no longer needed...).

25
59

cross-posted from: https://lemmy.world/post/11967153

the title says it all 😀

view more: next ›

Android

25431 readers
190 users here now

DROID DOES

Welcome to the droidymcdroidface-iest, Lemmyest (Lemmiest), test, bestest, phoniest, pluckiest, snarkiest, and spiciest Android community on Lemmy (Do not respond)! Here you can participate in amazing discussions and events relating to all things Android.

The rules for posting and commenting, besides the rules defined here for lemmy.world, are as follows:

Rules


1. All posts must be relevant to Android devices/operating system.


2. Posts cannot be illegal or NSFW material.


3. No spam, self promotion, or upvote farming. Sources engaging in these behavior will be added to the Blacklist.


4. Non-whitelisted bots will be banned.


5. Engage respectfully: Harassment, flamebaiting, bad faith engagement, or agenda posting will result in your posts being removed. Excessive violations will result in temporary or permanent ban, depending on severity.


6. Memes are not allowed to be posts, but are allowed in the comments.


7. Posts from clickbait sources are heavily discouraged. Please de-clickbait titles if it needs to be submitted.


8. Submission statements of any length composed of your own thoughts inside the post text field are mandatory for any microblog posts, and are optional but recommended for article/image/video posts.


Community Resources:


We are Android girls*,

In our Lemmy.world.

The back is plastic,

It's fantastic.

*Well, not just girls: people of all gender identities are welcomed here.


Our Partner Communities:

!android@lemmy.ml


founded 8 months ago
MODERATORS