Android 13 開発におけるバージョン差異への対応方法:重要なテクニックを公開!

この記事では、私の開発経験を共有し、
Android バージョンアップによる課題とその解決策について探ります。
私が直面した問題を分析することで、
開発過程で同様の問題に直面した際に役立つ洞察を提供できればと思います。

Android 13以上 バッテリー使用量の新しい制限:参考ドキュメント
  • Android 13 をターゲットプラットフォームとする場合、他の理由でアプリが起動しない限り、システムは以下のブロードキャストを送信しません:
    • BOOT_COMPLETED
    • LOCKED_BOOT_COMPLETED
BUILD_SDKバージョンを33に上げると、ByteArrayOutputStreamにwriteBytes(byte data[])メソッドが追加されました
  • 以前の開発で、誰かが独自にwriteBytesメソッドを作成していたため、名前が重複してコンパイルエラーが発生しました
  • BUILD SDKを上げることを検討している場合、プロジェクトオーナーは削除、名前変更、または前にpublicを追加することを検討できます android13_lib_error.png
Device Admin権限行為調整
  • Device Admin権限がある場合、アプリが使用されていないときに権限を削除すると、常に無効になります。 (自分でテストしたところ、Device Admin権限を無効にしても、この権限はグレーアウトされて変更できません)
Android 13 アクセス権限の細分化
  • 古い権限のみを要求するとクラッシュしますが、すべてのファイルアクセス権で代替できます。 android13_access_permission.png
  • AirDroidはすべてのファイルアクセス権を要求しているため、現在のところ変更は不要です。以下はそのページに遷移するIntentです。
    new Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION);
  • 変更が必要な場合は、デモを参考にしてください:
Android 13 通知権限の変化
  • Android 13では通知機能がデフォルトで無効になっています:通知権限変更の公式ドキュメント
  • そのため、NotificationManagerを実行すると システムが通知を有効にするよう要求します。

  • 変更された動作については、ネット上のユーザー適応記事を参考にしてください。

  • 権限を自分で処理する場合は、target SDKを33に上げる必要があります。 そうすれば、Manifest.permission.POST_NOTIFICATIONS権限を処理できます。

    または、target SDK 32の場合、NotificationManagerの初期化を後に移動します。 ただし、Manifest.permission.POST_NOTIFICATIONSに対するユーザーの拒否時の処理はできません。

  • ターゲットSDK 33デモパッチ: デモ

You might also enjoy