Eu segui tudo o que está lá sobre como criar um bloco de configurações rápidas do Android e, do meu lado, nada parece funcionar. Meu bloco parece não aparecer nos blocos personalizados.
Qual é o problema com meu código-fonte? Eu testei este aplicativo em diferentes smartphones, Samsung, Pixels, Vivo e não consigo ver meu bloco de configurações rápidas na seção de adicionar blocos personalizados.
Aqui está minha classe de serviço
package quick_settings_tile;
import android.service.quicksettings.Tile;
import android.service.quicksettings.TileService;
import android.util.Log;
import android.widget.Toast;
public class QuickTileService extends TileService {
// Called when the user adds your tile.
@Override
public void onTileAdded() {
super.onTileAdded();
try {
// Existing onClick code
Tile tile = getQsTile();
tile.setState(Tile.STATE_ACTIVE);
tile.updateTile();
Log.d("QuickTileService", "Tile added");
} catch (Exception e) {
Log.e("QuickTileService", "Crash: " + e.getMessage());
}
}
// Called when your app can update your tile.
@Override
public void onStartListening() {
super.onStartListening();
try {
Tile tile = getQsTile();
tile.setState(Tile.STATE_ACTIVE);
tile.updateTile();
Log.d("QuickTileService", "Tile listening");
} catch (Exception e) {
Log.e("QuickTileService", "Crash: " + e.getMessage());
}
}
// Called when the user taps on your tile in an active or inactive state.
@Override
public void onClick() {
super.onClick();
try {
// Existing onClick code
Tile tile = getQsTile();
Log.d("QuickTileService", "Clicked Label: " + tile.getLabel());
Toast.makeText(this, "Hello, we are almost there!!!!!!!!!!!!", Toast.LENGTH_SHORT).show();
getQsTile().updateTile();
} catch (Exception e) {
Log.e("QuickTileService", "Crash: " + e.getMessage());
}
}
// Called when the user removes your tile.
@Override
public void onTileRemoved() {
super.onTileRemoved();
try {
// Existing onClick code
Log.d("QuickTileService", "Service removed");
} catch (Exception e) {
Log.e("QuickTileService", "Crash: " + e.getMessage());
}
}
@Override
public void onCreate() {
super.onCreate();
try {
// Existing onClick code
Log.d("QuickTileService", "Service created");
} catch (Exception e) {
Log.e("QuickTileService", "Crash: " + e.getMessage());
}
}
}
Meu manifesto Android
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
<application
android:allowBackup="true"
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="@xml/backup_rules"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.Wire"
tools:targetApi="31">
<activity
android:name="receipts.ReceiptActivity"
android:exported="false" />
<activity
android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<service
android:name="quick_settings_tile.QuickTileService"
android:label="Pay bill"
android:icon="@drawable/white_qr_code_scanner"
android:exported="true"
android:permission="android.permission.BIND_QUICK_SETTINGS">
<meta-data android:name="android.service.quicksettings.ACTIVE_TILE"
android:value="true" />
<intent-filter>
<action android:name="android.service.quicksettings.action.QS_TILE" />
</intent-filter>
</service>
</application>
</manifest>
Eu tentei tudo mencionado nos tutoriais online. Da minha parte, quando eu testo o aplicativo, eu não vejo o resultado. Como ver o bloco de configurações rápidas.