• After 15+ years, we've made a big change: Android Forums is now Early Bird Club. Learn more here.

Linux for Mobile? How good is it, and does it give the Android experience?

I have heard of postmarketOS. It gives both a desktop/android experience as shown in its wiki
Perhaps, but that doesn't necessarily make it the Linux-Android hybrid I'm hoping for.

#1: Can it run Android apps? That's the most important thing. Windows, to it's credit, can do that.

#2: Does it have the Android/iOS style swiping and launcher? Windows doesn't, it has it's own swiping system and lacks a tablet-style launcher.

#3: Can the Google Play store be installed onto it? It can't on Windows.

#4: Does it have the desktop-style minimize/maximize/close buttons at the upper left? Windows does, and that makes it poorly suited as a tablet OS, because it's easy to press the close button by mistake.

Bromite browser still maintained?

so after doing some research looks like the dev who is now doing the project is called uazo and he is still doing test versions. he just posted one from 2 weeks ago.

and you can follow the discussion over at xda:
just jump to somewhere around page 130 or so.

BuzzKill app not sounding the alarm

I recently installed BuzzKill, and I want it to do something specific regarding the Jiobit app.

Jiobit is a GPS tracker my cat wears on her collar, and it the associated app on my phone gives me an alert if my cat runs away from home.

The problem is that Jiobit's notifications trigger the exact same sound file as an incoming text message, or any other notification. Since it's a pretty big deal if my cat gets out, I want to hear a special alarm in the unlikely event that my cat does leave home.

Therefore, I created a rule in BuzzKill that says any time Jiobit sends me a notification containing the word "left", an alarm should sound. This is because the relevant Jiobit notification would always say, "Mona has left home."

I have tested this by removing the cat's collar and taking it with me when I leave home.
Unfortunately, this triggers Jiobit's normal notification (with the text message sound), but does not cause BuzzKill to sound the alarm I wanted.

The thing is, BuzzKill *does* recognize these notifications as matching my criteria, because when I click on the rule I created, those recent Jiobit notifications show up in BuzzKill's list of notifications that match the criteria.

So BuzzKill can clearly see the notifications, but it's not sounding the alarm.

I should mention I did try just having BuzzKill sound an alarm for any and all notifications Jiobit sent me. That works, and the alarm does sound. But I don't want to go that route, because Jiobit does send me notifications unrelated to my cat's whereabouts. For example, it will send me a notification when I've been charging the battery on the GPS tracker and it's full. I don't want an alarm to sound when the battery's full.

Thank you in advance for whatever ideas you might have for how to fix this.

PS: I'm using a Samsung Galaxy S9, model number SM-G965U, running Android version 10. It is not rooted.

Screenshot_20230627-183853_BuzzKill.jpg

Is there a forum for Maps.me?

Thanks for the information. I tried 3601 Plymouth Rd (rather than 3600) and Maps.me found that. 3600 is a building housing two rental car agencies, etc., which Google Maps is able to find. I see now it's helpful to try other nearby street numbers in hopes that Maps.me/Open Street Maps lists those.

I'm interested that you use OSMand+; I think I will give that (or OSMand) a try.

Help I accidentally removed "Samsung_default" under User Certificates. How can I retrieve it?

Accidentally removing "Samsung_default" user credentials can have consequences. It's a default security certificate used for authentication and encryption. To restore it, go to Biometric and security > Other security settings > User Certificates, and look for an option to import or install certificates. If it's not available, contact Samsung support for assistance.

Android Studio Constraint Layout Error

I am getting such an error while compiling the application.
When I make a LinearLayout, the error disappears, but when I use a ConstraitLayout, the error appears.

Screenshot_20230627-093206_Chrome.jpg


Java Class


public Uri getLocalBitmapUri() {
LinearLayout linearLayout = findViewById(R.id.parent); /*Your root view to be part of screenshot*/
linearLayout.buildDrawingCache();
Bitmap bmp = linearLayout.getDrawingCache();
// Store image to default external storage directory
Uri bmpUri = null;
File file;
try {
File dir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).getPath() + "/" + getString(R.string.app_name) + "/");
dir.mkdirs();
String fileName = "/" + System.currentTimeMillis() + "share_image.png";

if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
file = new File(dir, fileName);
} else {
file = new File(getExternalFilesDir(Environment.DIRECTORY_PICTURES), "share_image_" + System.currentTimeMillis() + ".png");
}

FileOutputStream out = new FileOutputStream(file);
bmp.compress(Bitmap.CompressFormat.PNG, 90, out);
out.close();
bmpUri = Uri.fromFile(file);
} catch (IOException e) {
e.printStackTrace();
}
return bmpUri;
}




Xml


<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/parent"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/background"
android:layoutDirection="ltr"
android:eek:rientation="vertical"
tools:context=".MainActivity">

<RelativeLayout
android:id="@+id/relativeLayout7"
android:layout_width="1280dp"
android:layout_height="55dp"
android:layout_gravity="center_horizontal|center_vertical"
android:background="@color/colorPrimary"
android:gravity="center_horizontal|center_vertical"
android:layoutDirection="rtl"
android:eek:rientation="horizontal"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">

<TextView
android:id="@+id/level_number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_gravity="center_horizontal|center_vertical"
android:layout_marginTop="2dp"
android:textColor="@color/white"
android:textSize="18sp"
android:textStyle="bold"
tools:ignore="RtlCompat" />

<ProgressBar
android:id="@+id/progressBar"
style="?android:attr/progressBarStyleHorizontal"

android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/level_number"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginLeft="10dp"
android:layout_marginTop="5dp"
android:layout_marginRight="10dp"
android:layout_marginBottom="5dp"
android:layout_toStartOf="@+id/score"
android:layout_toLeftOf="@+id/score"
android:layout_toEndOf="@+id/questionNumber"
android:layout_toRightOf="@+id/questionNumber"
android:gravity="center_vertical|center_horizontal"
android:max="10"
android:progress="10"
android:progressDrawable="@drawable/circular_progress_bar2" />

<TextView
android:id="@+id/questionNumber"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_gravity="center_horizontal|center_vertical"
android:layout_marginStart="1dp"
android:layout_marginTop="1dp"
android:layout_marginRight="1dp"
android:background="@drawable/item_background"
android:gravity="center_horizontal|center_vertical"
android:paddingLeft="20dp"
android:paddingTop="10dp"
android:paddingRight="20dp"
android:paddingBottom="10dp"
android:text="0 / 0"
android:textColor="@color/colorAccent"
android:textSize="20sp"
tools:ignore="RtlCompat" />


<TextView
android:id="@+id/score"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:layout_gravity="center_horizontal|center_vertical"
android:layout_marginLeft="1dp"
android:layout_marginEnd="1dp"
android:background="@drawable/item_background"
android:drawableEnd="@drawable/score"
android:drawablePadding="15dp"
android:gravity="center_horizontal|center_vertical"
android:paddingLeft="10dp"
android:paddingTop="10dp"
android:paddingRight="30dp"
android:paddingBottom="10dp"
android:text="0"
android:textColor="@color/colorAccent"
android:textSize="20sp"
tools:ignore="RtlCompat" />

</RelativeLayout>

<LinearLayout
android:id="@+id/linearLayout3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_gravity="center_horizontal"
android:gravity="center_horizontal"
android:eek:rientation="vertical"
app:layout_constraintTop_toBottomOf="@+id/relativeLayout7"
tools:layout_editor_absoluteX="29dp">


<TextView
android:id="@+id/questionText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|center_horizontal"
android:gravity="center_vertical|center_horizontal"
android:paddingLeft="10dp"
android:paddingTop="5dp"
android:paddingRight="10dp"
android:paddingBottom="5dp"
android:scrollbars="vertical"
android:textColor="@color/textColor2"
android:textSize="20sp"
android:textStyle="bold" />
</LinearLayout>

<LinearLayout
android:id="@+id/linearLayout4"
android:layout_width="631dp"
android:layout_height="345dp"
android:layout_gravity="center_vertical|center_horizontal"

android:layout_weight="1"
android:gravity="center_vertical|center_horizontal"
android:eek:rientation="vertical"
app:layout_constraintBottom_toTopOf="@+id/done"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/linearLayout3"
app:layout_constraintVertical_bias="0.104">

<androidx.recyclerview.widget.RecyclerView
android:id="@+id/answerGridview"
android:layout_width="406dp"
android:layout_height="123dp"
android:layout_gravity="center"
android:layout_margin="5dp"
android:columnWidth="40dp"
android:gravity="center"
android:horizontalSpacing="4dp"
android:padding="4dp"
android:scrollbars="none"
android:verticalSpacing="4dp" />



<Button
android:id="@+id/reveal"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_margin="2dp"
android:layout_weight="1"
android:background="@drawable/border_background"
android:drawableLeft="@drawable/reveal"
android:drawablePadding="-5dp"
android:padding="5dp"
android:text="@String/show_answer"
android:textAllCaps="false"
android:textColor="@color/colorAccent" />

<ImageButton
android:id="@+id/reset"
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_gravity="center_horizontal"
android:layout_margin="2dp"
android:background="@drawable/reset_skip_background"
android:padding="10dp"
android:scaleType="centerInside"
android:src="@drawable/reset" />

<ImageButton
android:id="@+id/skip"
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_gravity="center_horizontal"
android:layout_margin="2dp"
android:background="@drawable/reset_skip_background"
android:padding="10dp"
android:scaleType="centerInside"
android:src="@drawable/skip" />


<Button
android:id="@+id/ask"
android:layout_width="139dp"
android:layout_height="615dp"
android:layout_margin="2dp"
android:layout_weight="1"
android:background="@drawable/border_background"
android:drawableRight="@drawable/friends"
android:padding="5dp"
android:text="@String/askfriends"
android:textAllCaps="false"
android:textColor="@color/colorAccent" />



<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"

android:eek:rientation="vertical">

<androidx.recyclerview.widget.RecyclerView
android:id="@+id/choicesGridview"
android:layout_width="405dp"
android:layout_height="127dp"
android:layout_gravity="center"
android:layout_margin="5dp"
android:columnWidth="40dp"
android:gravity="center"
android:padding="4dp"
android:scrollbars="none"

/>

</LinearLayout>
</LinearLayout>

<com.google.android.gms.ads.AdView
android:id="@+id/adView"
android:layout_width="1268dp"
android:layout_height="91dp"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="4dp"
app:adSize="SMART_BANNER"
app:adUnitId="@String/admob_banner_unit_id"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />

<Button
android:id="@+id/done"
android:layout_width="1276dp"
android:layout_height="76dp"
android:background="@drawable/pressed_no_corners"
android:text="@String/done"
android:textAllCaps="false"
android:textColor="@color/white"
android:textSize="20sp"
android:textStyle="bold"
app:layout_constraintBottom_toTopOf="@+id/adView"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent" />

<ImageButton
android:id="@+id/voiceImage"
android:layout_width="120dp"
android:layout_height="66dp"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_gravity="center_horizontal"

android:alpha="0.6"
android:background="@drawable/border_background"

android:padding="10dp"
android:scaleType="centerInside"
android:src="@drawable/ic_speaker"
android:visibility="gone"
app:layout_constraintBottom_toTopOf="@+id/questionImage"
app:layout_constraintEnd_toStartOf="@+id/linearLayout4"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/linearLayout3" />

<com.google.android.material.imageview.ShapeableImageView
android:id="@+id/questionImage"
android:layout_width="500dp"
android:layout_height="250dp"
android:layout_alignParentTop="true"
android:layout_gravity="center_horizontal"
android:layout_margin="10dp"
android:layout_marginTop="45dp"
android:layout_marginEnd="139dp"
android:layout_marginBottom="277dp"
android:adjustViewBounds="true"
android:gravity="center_horizontal"
android:maxHeight="250dp"
android:scaleType="centerCrop"
app:layout_constraintBottom_toTopOf="@+id/done"
app:layout_constraintEnd_toStartOf="@+id/linearLayout4"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/linearLayout3"
app:shapeAppearanceOverlay="@Style/ShapeAppearanceOverlay.App.CornerSize50Percent" />

</androidx.constraintlayout.widget.ConstraintLayout>



I get this error when I try to convert LinearLayout ConstraintLayout.
I changed the Java Class to ConstraintLayout, still getting the same error

Duplicate class javax.activation.ActivationDataFlavor found in modules

//build.gradle(app)
plugins {
id 'com.android.application'
id 'org.jetbrains.kotlin.android'
id 'kotlin-kapt'
id 'androidx.navigation.safeargs.kotlin'

}

android {
namespace 'ug.ac.pentecostalcollege23.testcontact'
compileSdk 33

defaultConfig {
applicationId "ug.ac.pentecostalcollege23.testcontact"
minSdk 21
targetSdk 33
versionCode 1
versionName "1.0"

testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}

buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = '1.8'
}
buildFeatures {
viewBinding true
}
}

//configurations {
// cleanedAnnotations
// implementation.exclude group: 'org.jetbrains' , module:'annotations'
//}
configurations {
// cleanedAnnotations {
// transitive = false
// }
cleanedAnnotations
// implementation.exclude group: 'org.jetbrains' , module:'annotations'
runtimeClasspath {
exclude module: 'javax.activation'
}
}

dependencies {

implementation('com.intellij:annotations:12.0') {
exclude group: 'org.jetbrains', module: 'annotations'
}
cleanedAnnotations 'org.jetbrains:annotations:13.0'

implementation 'androidx.core:core-ktx:1.7.0'
implementation 'androidx.appcompat:appcompat:1.6.1'
implementation 'com.google.android.material:material:1.5.0-alpha04'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
//Navigation
implementation 'androidx.navigation:navigation-fragment-ktx:2.6.0'
implementation 'androidx.navigation:navigation-ui-ktx:2.6.0'
implementation 'androidx.navigation:navigation-safe-args-gradle-plugin:2.5.0'
//Room
kapt 'androidx.room:room-compiler:2.5.0'
implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.5.0'
implementation 'androidx.room:room-ktx:2.5.0'
implementation 'androidx.room:room-runtime:2.5.0'
//Test
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.5'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'


}

build.gradle(Testcontact)

// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
dependencies {
classpath 'androidx.navigation:navigation-safe-args-gradle-plugin:2.5.0'

}
}
plugins {
id 'com.android.application' version '7.3.1' apply false
id 'com.android.library' version '7.3.1' apply false
id 'org.jetbrains.kotlin.android' version '1.8.20' apply false
}
I want to use
in modules only jakarta.activation-api-1.2.1 (jakarta.activation:jakarta.activation-api:1.2.1) and ex clude javax.activation-1.2.0 (com.sun.activation:javax.activation:1.2.0)

+1 in messages

If that +1 was part of the phone number that would be less puzzling but being part of your name is odd. It's not likely to be something to eliminate on your end (not your phone nor your carrier-based phone number) but something that needs to be done on the receiver end. Either some otherwise random setting in your friend's Contacts app (your name in their contacts list) or whatever text messaging app they're using.
If everyone or at least several other people you exchange text messages with also see a +1 with your name I.D. than that could indicate it was on your end, but since your friend is encountering this issue with another person too it's more likely to be something they need to fix. Ask them to look closely in their Contacts app listing to see if their are any odd characters that might might have been inadvertently added to your name and that other person's name. It could be an issue where their text messaging app is just substituting that odd character with a +1.

Payment Gateway Integration using PhonePe

Are your issues solved and you have successfully integrated phone pay in your app? I also need help in the concerned issue. Please reply if you have found solution. My mail I'd for your reference - utsavthalor26022004@gmail.com
Hello

I am facing issues while integrating PhonePe payment gateway in my android application. I used PhonePe PG SDK but the SDK not doesn't have the two classes named , "PaymentInstrument" & "DeviceContext".

Next I want to know how to get AppId and Salt key, when I logged in into PhonePe Business App, I didn't get them. And I have already registered to PhonePe PaymentGateway, but then also I didn't get.

And there is no proper documentation for SDKLess PhonePe Integration using intents.

THUMBS UP: CamScanner

I had replaced CamScanner with Microsoft Lens, which has the same functions and saves directly to OneDrive. However, I'm preparing to end my long relationship with Microsoft, since I refuse to move to Windows 11. I'm testing a Linux distro called Kubuntu and have a Synology NAS here, which will become our in-house cloud storage and media server. Since Lens won't apply anymore after that, I'll probably move back to CamScanner.

Tmobile Gateway

If someone in your household is using AT&T as their cellular service carrier than leave your AT&T indoor 5G antenna as is. But if everyone is using T-Mobile as their carrier than yes, there would be no point in having that antenna active.

Keep in mind that AT&T and T-Mobile are two different carriers and that each use their own different cellular networks so there isn't a conflict involved. Depending on where you reside where all being immersed with wireless cellular signals from different carriers, it's only a matter of which one we've chosen to have an active account with that we've chosen to use.
Plus there's a big difference between your AT&T antenna and your T-Mobile Gateway -- the former is taking in an AT&T cellular signal and emitting a boosted, stronger cellular signal for your household; the latter is taking in T-Mobile's cellular signal and emitting a converted WiFi signal to your household. Cellular and WiFi may both be wireless signals but they are different from each and are not interchangeable.

Need some help with hooking NFC

Hey All!
Im working on my first Magisk Module; a "Minimal-NFC-Framework Magisk Module"; for NFC devs and Researchers. The goal here is to have a cross-compatible and customizable NFC framework that contains a hook and some other useful NFC related dev tools (I.e NFCGate, but its own hook isn't working correctly on some devices, part of why i want to make a more compatible hook). Currently I've got the NXP SNxxxU series controllers supported, with plans to add the rest of NXP's stuff if/when someone reports it as needed, Likewise with all other NFC controllers and their framework/firmware. My Github repo for this project can be found here. You can see I've got a pretty good start already. I am having to reverse engineer my way through all of this as I can not find too much documentation on it. Please share any docs you may find too that may help!

So Hurdle #1 -->I optimally need to sort out a way to hook NFC in a similar way to xHook (The hook NFCGate uses), I have not messed with hooking before so need some good advice/guides/templates or prebuilt solutions.
Requirements for hook?
1- Support for android 10-13
2- ???

Hurdle #2 --> Need to identify the most common NFC controllers used on other devices so i can collect/source all the needed componets/files/libs/etc
Hurdle #3 --> Figure out a way to dynamically detect and mount the correct init/firmware & config files for the NFC controller on each individual device.

If you think you could help with this I want to hear from you! Even the smallest advice could be what I was missing!
Find me on any TG/Discord/Twitter
@k0mraid3

Filter

Back
Top Bottom