onurgndz1905 adlı üyeden alıntı: mesajı görüntüle
cevabınız için teşekkürler ama maalesef REBOOT permission eklememe rağmen çalışmıyor </receiver>
<receiver android:name=".receiver.BootReceiver"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.REBOOT" />
</intent-filter>
</receiver>
Özür dilerim, yakın tarihli Android sürümlerinde "android.intent.action.REBOOT" eylemi artık kullanılamayabilir. Bu nedenle işlemi gerçekleştirmek için başka bir yaklaşım gerekebilir. Android 10 ve sonrasında, cihazın yeniden başlatılmasını işleyen uygulamalara verilen yetkiler sınırlıdır.
Bunun yerine, cihazın yeniden başlatılmasını algılamak ve servisinizi başlatmak için "BOOT_COMPLETED" eylemini kullanabilirsiniz. Ancak, bu eylem için kullanılabilirlik Android 8 (Oreo) ve öncesinde sınırlıdır ve kullanıcı izni gerektirebilir.
İzni manifest dosyanıza ekledikten sonra, kullanıcının bu izni kabul etmesi gerekir. İşte manifest dosyanızda izin eklemesi ve kullanıcı izni isteme kodunun nasıl eklenmesi gerektiği:
AndroidManifest.xml:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

<application>
    <!-- ... Diğer uygulama ayarları ... -->

    <receiver
        android:name=".receiver.BootReceiver"
        android:enabled="true"
        android:exported="true">
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />
        </intent-filter>
    </receiver>
</application>

BootReceiver.java (veya .kt):


class BootReceiver : BroadcastReceiver() {
    override fun onReceive(context: Context?, intent: Intent?) {
        if (intent?.action == Intent.ACTION_BOOT_COMPLETED) {
            // Servisi başlat
            val serviceIntent = Intent(context, MyForegroundAppService::class.java)
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
                context?.startForegroundService(serviceIntent)
            } else {
                context?.startService(serviceIntent)
            }
        }
    }
}
}
Ayrıca, kullanıcı izni almak için bir açıklama eklemelisiniz. Kullanıcı, uygulamanın cihazın başlangıcında çalışmasına izin verip vermediğini onaylayabilir veya reddedebilir. Bu, kullanıcının uygulamanızın nasıl davranacağını belirlemesine olanak tanır.
Kullanıcı iznini istemek için örnek bir kod parçası:

class YourActivity : AppCompatActivity() {
    // ...

    fun requestBootPermission() {
        val intent = Intent(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS)
        intent.data = Uri.parse("package:" + applicationContext.packageName)
        startActivity(intent)
    }
}
Bu şekilde izin aldıktan sonra cihazın yeniden başlatılmasında uygulamanızın servisi başlamalıdır.

https://chat.openai.com