개발환경 : VS Code

 

반응형

 

Health Connect 를 열심히 로컬 환경에서 개발하고, 이제 PlayStore 내부테스트로 테스트를 시작하려는 순간! 

이런 메세지를 마주하게 될 것이다. 

앱이 헬스 커넥트에 엑세스할 수 없음
앱이 최신 상태인지 확인하거나 앱 개발자에게 지원을 문의하세요. 


This app can't access Health Connect
Check the app is up-to-date, or contract the app developer for support.

 

 

이 때, 우리가 간과한 것이 있으니!  자주 묻는 질문(FAQ) 까지 정독하지 않은 것 즉,  제일 중요한 "개발자 선언 양식"을 작성하여 요청 해야한다는 것!!

 

자주 묻는 질문(FAQ)  |  Android 개발자  |  Android Developers

자주 묻는 질문(FAQ) 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Q: 헬스 커넥트는 Android 플랫폼에서만 사용할 수 있나요? A: 예. Health Connect API와 헬스 커넥

developer.android.com

 

Google Health Connect API Request 을 신청하면 일단 일주일은 소요가 되며, 대략 매주 월요일 정도에 승인 리스트가 나오는 것으로 알려져 있다. 

요즘 헬스 커넥트 때문에  health-connect-support 담당자와 1일 1메일을 주고받는다.. 휴...ㅠ 

빨리 승인이 되기를 😰

 

참고 자료 

Health Connect by Android Permissions

Data accessed through Health Connect Permissions is regarded as personal and sensitive user data subject to the User Data policy, and the following additional requirements:

 

Appropriate Access to and Use of Health Connect

Requests to access data through Health Connect must be clear and understandable. Health Connect may only be used in accordance with the applicable policies, terms and conditions, and for approved use cases as set forth in this policy. This means you may only request access to permissions when your application or service meets one of the approved use cases.

Approved use cases for access to Health Connect Permissions are:

  • Applications or services with one or more features to benefit users' health and fitness via a user interface allowing users to directly journal, report, monitor, and/or analyze their physical activity, sleep, mental well-being, nutrition, health measurements, physical descriptions, and/or other health or fitness-related descriptions and measurements.
  • Applications or services with one or more features to benefit users' health and fitness via a user interface allowing users to store their physical activity, sleep, mental well-being, nutrition, health measurements, physical descriptions, and/or other health or fitness-related descriptions and measurements on their phone and/or wearable, and share their data with other on-device apps that satisfy these use cases.

Health Connect is a general purpose data storage and sharing platform that allows users to aggregate health and fitness data from various sources on their Android device and share it with third parties at their election. The data may originate from various sources as determined by the users. Developers must assess whether Health Connect is appropriate for their intended use and to investigate and vet the source and quality of any data from Health Connect in connection with any purpose, and, in particular, for research, health, or medical uses.

  • Apps conducting health-related human subject research using data obtained through Health Connect must obtain consent from participants or, in the case of minors, their parent or guardian. Such consent must include the (a) nature, purpose, and duration of the research; (b) procedures, risks, and benefits to the participant; (c) information about confidentiality and handling of data (including any sharing with third parties); (d) a point of contact for participant questions; and (e) the withdrawal process. Apps conducting health-related human subject research using data obtained through Health Connect must receive approval from an independent board whose aim is 1) to protect the rights, safety, and well-being of participants and 2) with the authority to scrutinize, modify, and approve human subjects research. Proof of such approval must be provided upon request.
  • It is also your responsibility for ensuring compliance with any regulatory or legal requirements that may apply based on your intended use of Health Connect and any data from Health Connect. Except as explicitly noted in the labeling or information provided by Google for specific Google products or services, Google does not endorse the use of or warrant the accuracy of any data contained in Health Connect for any use or purpose, and, in particular, for research, health, or medical uses. Google disclaims all liability associated with use of data obtained through Health Connect.

Limited Use

Upon using Health Connect for an appropriate use, your use of the data accessed through Health Connect must also comply with the below requirements. These requirements apply to the raw data obtained from Health Connect, and data aggregated, de-identified, or derived from the raw data.

  • Limit your use of Health Connect data to providing or improving your appropriate use case or features that are visible and prominent in the requesting application's user interface.
  • Only transfer user data to third parties:
    • To provide or improve your appropriate use case or features that are clear from the requesting application's user interface and only with the user’s consent;
    • If necessary for security purposes (for example, investigating abuse);
    • To comply with applicable laws and/or regulations; or,
    • As part of a merger, acquisition or sale of assets of the developer after obtaining explicit prior consent from the user.
  • Do not allow humans to read user data, unless:
    • The user's explicit consent to read specific data is obtained;
    • It’s necessary for security purposes (for example, investigating abuse);
    • To comply with applicable laws; or,
    • The data (including derivations) is aggregated and used for internal operations in accordance with applicable privacy and other jurisdictional legal requirements.

All other transfers, uses, or sale of Health Connect data is prohibited, including:

  • Transferring or selling user data to third parties like advertising platforms, data brokers, or any information resellers.
  • Transferring, selling, or using user data for serving ads, including personalized or interest-based advertising.
  • Transferring, selling, or using user data to determine credit-worthiness or for lending purposes.
  • Transferring, selling, or using the user data with any product or service that may qualify as a medical device pursuant to Section 201(h) of the Federal Food Drug & Cosmetic Act if the user data will be used by the medical device to perform its regulated function.
  • Transferring, selling, or using user data for any purpose or in any manner involving Protected Health Information (as defined by HIPAA) unless you receive prior written approval to such use from Google.

Access to Health Connect may not be used in violation of this policy or other applicable Health Connect terms and conditions or policies, including for the following purposes:

  • Do not use Health Connect in developing, or for incorporation into, applications, environments or activities where the use or failure of Health Connect could reasonably be expected to lead to death, personal injury, or environmental or property damage (such as the creation or operation of nuclear facilities, air traffic control, life support systems, or weaponry).
  • Do not access data obtained through Health Connect using headless apps. Apps must display a clearly identifiable icon in the app tray, device app settings, notification icons, etc.
  • Do not use Health Connect with apps that sync data between incompatible devices or platforms.
  • Health Connect cannot connect to applications, services or features that solely target children. Health Connect is not approved for use in primarily child-directed services.

An affirmative statement that your use of Health Connect data complies with Limited Use restrictions must be disclosed in your application or on a website belonging to your web-service or application; for example, a link on a homepage to a dedicated page or privacy policy noting: “The use of information received from Health Connect will adhere to the Health Connect Permissions policy, including the Limited Use requirements.”

Minimum Scope

You may only request access to permissions that are critical to implementing your application or service's functionality. 

This means:

  • Don't request access to information that you don't need. Only request access to the permissions necessary to implement your product's features or services. If your product does not require access to specific permissions, then you must not request access to these permissions.

Transparent and Accurate Notice and Control

Health Connect handles health and fitness data, which includes personal and sensitive information. All applications and services must contain a privacy policy, which must comprehensively disclose how your application or service collects, uses, and shares user data. This includes the types of parties to which any user data is shared, how you use the data, how you store and secure the data, and what happens to the data when an account is deactivated and/or deleted.

In addition to the requirements under applicable law, you must also adhere to the following requirements:

  • You must provide a disclosure of your data access, collection, use, and sharing. The disclosure:
    • Must accurately represent the identity of the application or service that seeks access to user data;
    • Must provide clear and accurate information explaining the types of data being accessed, requested, and/or collected;
    • Must explain how the data will be used and/or shared: if you request data for one reason, but the data will also be utilized for a secondary purpose, you must notify users of both use cases.
  • You must provide user help documentation that explains how users can manage and delete their data from your app.

Secure Data Handling

You must handle all user data securely. Take reasonable and appropriate steps to protect all applications or systems that make use of Health Connect against unauthorized or unlawful access, use, destruction, loss, alteration, or disclosure.

Recommended security practices include implementing and maintaining an Information Security Management System such as outlined in ISO/IEC 27001 and ensuring your application or web service is robust and free from common security issues as set out by the OWASP Top 10.

Depending on the API being accessed and number of user grants or users, we will require that your application or service undergo a periodic security assessment and obtain a Letter of Assessment from a designated third party if your product transfers data off the user's own device.

For more information on requirements for apps connecting to Health Connect, please see this help article.

 

 

 

 

Permissions and APIs that Access Sensitive Information - Play Console Help

Health Connect by Android Permissions Data accessed through Health Connect Permissions is regarded as personal and sensitive user data subject to the User Data policy, and the following additional requirements: Appropriate Access to and Use of Health Conne

support.google.com

 

 

미리보기: 민감한 정보에 액세스하는 권한 및 API - Play Console 고객센터

Health Connect by Android 권한 Health Connect 권한을 통해 액세스되는 데이터는 사용자 데이터 정책과 다음과 같은 추가 요건이 적용되는 개인 정보 및 민감한 사용자 데이터로 간주됩니다. 적절한 Health

support.google.com

 

반응형

What is Health Connect?

Health Connect is a health data platform for Android app developers. It provides a single, consolidated interface for access to users' health & wellness data, and consistent functional behavior across all devices. With Health Connect, users have a secure health & wellness data storage on-device, with full control and transparency over access.

How does Health Connect work?

Health Connect supports more than 50 common health & fitness data types and categories, including: activity, sleep, nutrition, body measurements and vitals like heart rate and blood pressure.

 

 

With user permission, developers can securely read from and write data to Health Connect, using standardized schemas and API behavior. Users will have full control over their privacy settings, with granular controls to see which apps are requesting access to data at any given time. The data in Health Connect is stored on-device and encrypted. Users will have the ability to shut off access or delete data they don't want on their device, and the option to prioritize one data source over another when using multiple apps.

 

Health Connect Architecture

The following is an explanation of Health Connect's key aspects and architectural components:

  • Client app - to integrate with Health Connect, the client app first links then SDK into their health and fitness app. This provides an API surface to interact with the Health Connect API.
  • Software Development Kit - the SDK enables the client app to communicate with the Health Connect APK over IPC.
  • Health Connect APK - this is the APK that implements Health Connect. It contains both its Permissions Management and Data Management components. The Health Connect APK is made available directly on the user's device, making Health Connect device-centric instead of account-centric.
  • Permissions management - Health Connect includes a user interface through which apps request the user's permission to display data. It also provides a list of existing user permissions. This allows users to easily control and manage the access they have granted or denied to various applications.
  • Data management - Health Connect provides a user interface with an overview of recorded data, whether it's a user's step counts, cycling speeds, heart rate, or other supported data types.

What you'll build

In this codelab, you're going to build a simple Health and Fitness app integrated with Health Connect. Your app will:

  • Obtain and check user permissions for data access
  • Write data to Health Connect
  • Read aggregated data from Health Connect

What you'll learn

  • How to setup your environment to support Health Connect integration development
  • How to obtain permissions and execute permission checks
  • How to contribute health & fitness data to the Health Connect platform
  • How to benefit from the on-device data storage
  • How to validate your app with Google provided developer tools

What you'll need

  • Latest stable version of Android Studio
  • Android mobile device with Android SDK version 28 (Pie) or higher

 

 

 

 

 

첫 번째 헬스 커넥트 통합 앱  |  Android Developers

이 Codelab에서는 헬스 커넥트에서 읽기 및 쓰기를 지원하는 건강 및 피트니스 앱을 빌드합니다.

developer.android.com

 

 

첫 번째 헬스 커넥트 통합 앱  |  Android Developers

이 Codelab에서는 헬스 커넥트에서 읽기 및 쓰기를 지원하는 건강 및 피트니스 앱을 빌드합니다.

developer.android.com

 

반응형

 

 

Mobile apps with HTML, CSS & JS Target multiple platforms with one code base Free and open source


웹 베이스로 하이브리드 앱을 만들기 위한 프레임워크 중 하나로 Apache Software Foundation 에서 만들고 있다. 라이센스는 당연히 Apache License, Version 2.0.

 

요즘 계속 Native만 작업했는데, 오랜만에 이런 하이브리드 환경을 접하게 되었다. 

잘해보자구! 

 

 

Apache Cordova

Supported Platforms See a list of features supported in each platform Cordova wraps your HTML/JavaScript app into a native container which can access the device functions of several platforms. These functions are exposed via a unified JavaScript API, allow

cordova.apache.org

 

반응형

 

 

Signos streamlines integrations with other health and fitness apps through a single Health Connect API

 

Posted by the Android Team

Signos helps people make healthier decisions and achieve their health goals by giving them a simple way to track and monitor their body’s response to glucose throughout the day. Pairing a continuous glucose monitor with an AI-driven app, Signos builds an understanding of a member's metabolic profile in real time, providing personalized nutrition suggestions based on their glucose patterns. This includes determining which foods are best for a member and when to eat them, or when to exercise to bring glucose levels back within a healthy range for optimal weight loss.

The Signos team knew that having more context on a member’s daily lifestyle behaviors—including exercise, sleep, and stress—would give a clearer view of health and allow the app to deliver more personalized recommendations. To integrate these additional wellness insights into its app, Signos developers used Health Connect, an Android API that unifies health and fitness data from multiple devices and apps into one platform.

 

Putting the member first

Signos integrated Health Connect so its members’ health and fitness data from apps like Fitbit, Samsung Health, and Google Fit can be automatically synced to the Signos app. Instead of requiring members to manually input this data from multiple sources, they can use Health Connect and enable Signos to sync with the other integrated apps they use to support their well-being. Not only does this save members time, it also ensures consistent and accurate data.

With Health Connect, it’s easier for Signos to identify patterns in a member's health and offer more insightful recommendations based on their glucose patterns. It also provides Signos members with a better understanding of how their daily choices affect their glucose, metabolic health, and weight by bringing their health data together in Signos, where they can easily view it and make comprehensive connections.

Signos understands data privacy is important, and with Health Connect, Signos members can securely manage their health information on Android devices. When a member first opens Health Connect, they're guided through the process of selecting which health metrics and apps they want to provide access to, giving them complete control of what's made available to Signos.

 

One implementation for many data sources

Before implementing Health Connect, Signos developers struggled to connect relevant data from multiple sources because many APIs weren't available or too many integrations needed to be created and maintained. This meant the Signos team had to write individual integrations to support multiple API surfaces for every app they wanted to sync data from. Now, they only need to write one, saving them a tremendous amount of development time and effort.

With a single API connection through Health Connect, Signos was able to unify health and wellness data from the apps most used by members. “Now that data from workouts, sleep, weight logs, and heart rate automatically sync from other apps, members can see how all of this data impacts their glucose throughout the day,” said Emma Allison, vice president of product at Signos.
 
 
Additionally, implementing Health Connect is simple. Using specialized constructors, Signos developers were able to take Health Connect records and convert them into the internal models used for Signos’ health data. This allowed the Signos app to process Health Connect data the same way it processes its own, so the experience is completely seamless to members. Sleep logged from their wearables that’s synced through Health Connect looks exactly the same to them as sleep logged straight into Signos.
 
“One aspect I was pleasantly surprised by was the user onboarding UX,” said Signos developer Jake Smith. “A simple, drop-in piece of code brings them straight to the Play Store to install Health Connect and then right back to the app so they can set up the permissions and start reaping the benefits.”

 

More connections, more opportunities

Currently, Health Connect’s first integration with Signos syncs personal wellness data like exercise, heart rate, sleep, and hydration. In the future, Signos plans to build out more robust integrations and in-app experiences with each data set, including women’s health, nutrition, and even mindfulness.

Signos is excited about what the future of Health Connect will bring. Health Connect helps standardize different data types and allows Android apps to freely connect to the API, so Signos won’t have to create any further integrations as other apps adopt Health Connect. This means that as the Health Connect ecosystem grows, so will Signos’ ability to help its members.

 

Get started with Health Connect

Health Connect lets developers and users securely connect with multiple Android apps and devices. Watch the DevByte introduction video to learn how you can get started with Health Connect.

 
 

 

 

https://android-developers.googleblog.com/2023/01/signos-streamlines-integrations-with-health-fitness-apps-through-health-connect-api.html

 

반응형

 

Leading Health and Fitness Apps Roll Out Health Connect Integrations

 

Earlier this year, we introduced Health Connect as a way for app developers like you to have early access to a platform that securely shares health and fitness data across Android devices, with user consent. We collaborated with Samsung to build this platform which simplifies the connectivity between your apps while providing centralized privacy controls for users. We are now making the Health Connect (Beta) app available for download in Google Play to give users a central place to manage their privacy settings with granular controls to see which apps have access to data at any given time.

Today, 10+ health, fitness and wellness apps are rolling out integrations with the platform including early adopters of Health Connect like MyFitnessPal, Oura and Peloton.Through the first wave of integrations, we have seen Health Connect provide many key benefits to developers.
Reduced fragmentation makes it easier to give users more holistic health insights

By enabling health and fitness apps to talk to each other, each app is able to provide a user with better, more holistic health insights.

In the past, developers had to establish multiple API connections to share data between different apps and each integration was costly to build and maintain. This limited developers’ data sharing capabilities and made it hard for users to unlock this data so that it could be utilized in different apps.

Now, with Health Connect, building an integration with a new app is as simple as reading in new data from Health Connect, rather than building a whole new integration.

For example, Android users will now be able to sync and get credit for their Peloton workouts in apps like Oura, MyFitnessPal, WeightWatchers and Lifesum. Now, through a single integration with Health Connect, Peloton Members will have the option to share their workout stats across the ecosystem of apps they use to support their overall wellness.

 

Standardized data schema ensures data consistency between apps

Health Connect provides a standardized data schema which supports 40+ data types across 6 categories. The schema is intuitive to use and covers a wide range of use cases, from exercises to sleep tracking to vital signs. It only requires just a few lines of code to read and write any of these data types in Health Connect. Health Connect even supports complex aggregations so that you can completely customize your queries to your app’s use case.
 

"With Health Connect APIs, our engineers were able to easily adapt their existing architecture in order to read and write user health data such as nutrition, hydration, exercise, and steps. With this integration, we're now able to consume data from any 3rd party application that also writes to Health Connect, expanding our users' choices while allowing them more flexibility to grant granular permissions about which data they want to share"
– Jason Peterson, Chief Technology Officer of MyFitnessPal

 

Centralize privacy controls for users, with less code

Previously, users had to navigate to multiple apps to manage data permissions. And, developers had to build out permissions management UIs themselves.

With Health Connect, users can easily manage permissions in a single place, with granular controls to see which apps are accessing data at any given time.

For developers, Health Connect provides the permissions management hub and granular permissions UIs out of the box, so you can set this up quickly.

 
granular permissions screen that shows the different data types

For example, Signos was able to quickly set up permissions checks with Health Connect. “One aspect I was pleasantly surprised by was the user onboarding UX,” said Signos developer Jake Smith. “A simple, drop-in piece of code sets up the permissions so users can start reaping the benefits.”

 

We’re just getting started

Join the many developers who have already integrated with Health Connect and don’t miss out on the opportunity to develop richer insights for your users. Check out our documentation, helpful video tutorials, and code samples – and start building today!

반응형

From helping you log your meals with MyFitnessPal to getting a holistic view of your health with Withings, apps and devices are a source for many kinds of useful health and fitness data. As Android developers, connecting and sharing this data between apps can help you provide more meaningful experiences and insights for your users. However, much of this information is spread across multiple experiences and different devices, making it difficult to bring together. Moreover, there are no centralized privacy controls for Android users.

 

Introducing Health Connect

This is why we’ve created Health Connect, a platform and API for Android app developers. With user permission, developers can use a single set of APIs to securely access and share health and fitness data across Android devices.

We're building this new unified platform in collaboration with Samsung to simplify connectivity between apps. We appreciate Samsung’s collaboration as we roll out Health Connect to foster richer app experiences while also providing centralized privacy controls for users.

We've been working with developers including MyFitnessPal, Leap Fitness and Withings as part of an early access program. In addition, Samsung Health, Google Fit and Fitbit are adopting Health Connect. Starting today, all developers can get access to Health Connect's common set of APIs for Android via Android Jetpack.

Health Connect fits in with Google’s wider efforts to help billions of people be healthier, using our platforms and technology to connect and bring more meaning to health information.

 

How does Health Connect work?

How Health Connect Works

Health Connect supports many common health and fitness data types and categories, including: activity, sleep, nutrition, body measurements and vitals like heart rate and blood pressure.

With user permission, developers can securely read from and write data to Health Connect, using standardized schema and API behavior. Users will have full control over their privacy settings, with granular controls to see which apps are requesting access to data at any given time. The data in Health Connect is all on-device and encrypted. Users will have the ability to shut off access or delete data they don’t want on their device, and the option to prioritize one data source over another when using multiple apps.

Getting started

It’s easy to get started with Health Connect. Health Connect’s single set of APIs makes it simple to manage permissions and read and write data. Here’s an example of how you can request permissions and then write some data.

First, build a set of the permissions you plan to request read or write access to. In this example we are reading and writing steps and heart rate.

private val permissions =
  setOf(
    Permission.createReadPermission(Steps::class),
    Permission.createWritePermission(Steps::class),
    Permission.createReadPermission(HeartRate::class),
    Permission.createWritePermission(HeartRate::class),
  )

// then, create a permissions request for this set of permissions

 

Then, launch the permissions request, which will bring the user to the Health Connect permissions UI to grant permissions.

Once the user grants permission, you are ready to read and write data. Here’s an example of how to write steps data over a period of time. Include the total number of steps, start and end time, and timezone information, and then insert the data into Health Connect.

private suspend fun writeSomeData(client: HealthConnectClient) {
    val records = mutableListOf<Record>()

    records.add(
      Steps(
        count = 888,
        startTime = START_TIME,
        endTime = END_TIME,
        startZoneOffset = null,
        endZoneOffset = null,
      )
    )
    // add additional records as needed
}

 

Learn more

Health Connect is now available to developers:

Watch the technical session below:

 

https://android-developers.googleblog.com/search/label/Health%20Connect%20API

 

Android Developers Blog

News and insights on the Android platform, developer tools, and events.

android-developers.googleblog.com

 

반응형

 

API 레벨 플랫폼 버전 플랫폼명 출시날짜
API 수준 33 Android 13 - August 16, 2022
API 수준 32 Android 12L - March 7, 2022
API 수준 31 Android 12 - October 4, 2021
API 수준 30 Android 11 - September 8, 2020
API 수준 29 Android 10 - September 3, 2019
API 수준 28 Android 9 Pie August 6, 2018
API 수준 27 Android 8.1    
API 수준 26 Android 8.0 Oreo August 21, 2017
API 수준 25 Android 7.1    
API 수준 24 Android 7.0 Nougat August 22, 2016
API 수준 23 Android 6.0 Marshmallow October 2, 2015
API 수준 22 Android 5.1    
API 수준 21 Android 5.0 Lollipop November 4, 2014
API 수준 20 Android 4.4W KitKat, with wearable extensions June 25, 2014
API 수준 19 Android 4.4 KitKat October 31, 2013
API 수준 18 Android 4.3    
API 수준 17 Android 4.2    
API 수준 16 Android 4.1 Jelly Bean July 9, 2012
API 수준 15 Android 4.0.3    
API 수준 14 Android 4.0 Ice Cream Sandwich October 18, 2011
API 수준 13 Android 3.2    
API 수준 12 Android 3.1    
API 수준 11 Android 3.0 Honeycomb February 22, 2011
API 수준 10 Android 2.3.3    
API 수준 9 Android 2.3 Gingerbread December 6, 2010

 

 

SDK 플랫폼 출시 노트  |  Android 개발자  |  Android Developers

SDK Manager의 SDK Platforms 탭에서 다운로드할 수 있는 SDK 패키지에 관한 출시 정보를 확인하세요.

developer.android.com

 

 

Android version history - Wikipedia

The version history of the Android mobile operating system began with the public release of the Android beta on November 5, 2007. The first commercial version, Android 1.0, was released on September 23, 2008. Android is developed by Google in which new maj

en.wikipedia.org

 

반응형

### 이슈

java.lang.SecurityException: Need android.permission.BLUETOOTH_SCAN permission for AttributionSource 
{ uid = 10965, packageName =  ### , attributionTag = null, token = android.os.BinderProxy@b85f7e3, next = null }: 
GattService registerScanner

 

 

### 해결방안 

> 안드로이드 12 적용하면서 Android 12에서는 BLUETOOTH_SCAN, BLUETOOTH_ADVERTISE, BLUETOOTH_CONNECT 권한을 도입합니다. 이를 통해 앱이 위치 정보 액세스 권한을 요청하지 않고도 근처 기기를 검색할 수 있습니다. 이러한 권한을 선언하려면 앱이 Android 12를 타겟팅해야 한다. 

 

1. manifest 적용 

<manifest>
    <!-- Request legacy Bluetooth permissions on older devices. -->
    <uses-permission android:name="android.permission.BLUETOOTH"
                     android:maxSdkVersion="30" />
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"
                     android:maxSdkVersion="30" />

    <!-- Needed only if your app looks for Bluetooth devices.
         You must add an attribute to this permission, or declare the
         ACCESS_FINE_LOCATION permission, depending on the results when you
         check location usage in your app. -->
    <uses-permission android:name="android.permission.BLUETOOTH_SCAN" />

    <!-- Needed only if your app makes the device discoverable to Bluetooth
         devices. -->
    <uses-permission android:name="android.permission.BLUETOOTH_ADVERTISE" />

    <!-- Needed only if your app communicates with already-paired Bluetooth
         devices. -->
    <uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
    ...
</manifest>

 

 

2. 블루투스 사용 권한 요청 시 requestPermission 요청 

if (PermissionType.BLUETOOTH == type ) {
            permissions.add(Manifest.permission.ACCESS_COARSE_LOCATION);
            permissions.add(Manifest.permission.ACCESS_FINE_LOCATION);
            permissions.add(Manifest.permission.BLUETOOTH);
            permissions.add(Manifest.permission.BLUETOOTH_ADMIN);
            permissions.add(Manifest.permission.BLUETOOTH_SCAN);
            permissions.add(Manifest.permission.BLUETOOTH_ADVERTISE);
            permissions.add(Manifest.permission.BLUETOOTH_CONNECT);
    }

 

 

 

https://developer.android.com/about/versions/12/features/bluetooth-permissions?hl=ko 

 

Android 12의 새 블루투스 권한  |  Android Developers

내년 초 출시될 대형 화면용 기능 출시인 12L을 준비하세요. 지금 사용해 보기 Android 12의 새 블루투스 권한 Android 12에서는 BLUETOOTH_SCAN, BLUETOOTH_ADVERTISE, BLUETOOTH_CONNECT 권한을 도입합니다. 이를 통

developer.android.com

 

반응형

Apple Worldwide Developer Relations Intermediate Certificate updates

Starting January 28, 2021, the digital certificates you use to sign your software for installation on Apple devices, submit apps to the App Store, and connect to certain Apple services will be issued from the new intermediate Apple Worldwide Developer Relations certificate that expires on February 20, 2030. Learn how to prepare for the new intermediate certificate.

Using the new certificate with Xcode

If you’re running Xcode 11.4.1 or later, you’ll receive the updated certificate automatically when you sign an app after January 28, 2021. If you’re running an earlier release of Xcode and need to generate new certificates, download and install the new intermediate certificate and utilize the command line to sign your app. You can also archive your build with your existing Xcode version and sign it for distribution with Xcode 11.4.1 or later.

Why is the Apple Worldwide Developer Relations Certification Authority being updated now if the current version doesn’t expire until 2023?

Certificates cannot be issued with a validity period that extends past the intermediate certificate’s expiration date. Updating the intermediate certificate allows developers to obtain certificates before expiration that last for the expected duration, and provides ample time to prepare for the expiration of the existing intermediate certificate.

Do I need to regenerate any of my certificates?

No. Your existing certificates will continue to function until expiration or revocation, whichever comes first.

Will customers be affected by the certificate renewal?

No. Customers who have installed apps from the App Store or Safari Extensions will not be affected by the certificate renewal.

Will my apps in development continue working?

Yes. The development versions of your apps will continue to run until the provisioning profile used to compile them expires or you revoke your signing certificate.

Will my in-house enterprise apps continue working?

Yes. All in-house enterprise apps for iOS, iPadOS, tvOS, or watchOS that you’ve deployed will continue to run as expected until the provisioning profile used to compile them expires or you revoke your signing certificate. The iOS Distribution Certificate for the Apple Developer Enterprise Program was updated on September 1, 2020. iOS Distribution Certificates generated as part of the Apple Developer Enterprise Program between February 7 and September 1, 2020, will expire on February 7, 2023. Rotate the certificate before expiration to ensure your apps are installed and signed with an active certificate.

Should I keep both intermediate certificates installed?

Yes. The intermediate certificate that expires on February 7, 2023, will continue to issue select Apple services certificates, including Apple Push Notification service (APNs) SSL certificates and Apple Wallet pass signing certificates, so you should keep both versions installed on your development systems and servers. See the complete list and timeline of certificate changes below.

In what cases should I continue using the certificate that expires in 2023?

Continue using the existing Apple Worldwide Developer Relations Intermediate Certificate (expiring in 2023) if you use any of the certificates signed with it that are listed below. These services will be updated with a new intermediate certificate (expiring in 2030) by the the end of 2021. Keep both versions installed on your development systems and servers until later this year.

  • Apple Push Notification service SSL (Sandbox)
  • Apple Push Notification service SSL (Sandbox and Production)
  • macOS Apple Push Notification service SSL (Production)
  • Website Push ID
  • WatchKit Services
  • VoIP Services
  • Pass Type ID
  • Pass Type ID with NFC support
  • App Store Receipt Signing

Is Developer ID signed software affected?

No. Developer ID signing certificates are associated with a different intermediate certificate and aren’t affected by this renewal.

Certificate update timeline

These certificates will be issued with the new intermediate certificate (expiring in 2030).

September 1, 2020

iOS Distribution for Enterprise Developer Program memberships

January 28, 2021

  • Apple Development
  • Apple Distribution
  • iOS App Development
  • iOS Distribution (App Store and Ad Hoc)
  • Mac Development
  • Mac App Distribution
  • Mac Installer Distribution
  • MDM CSR
  • Apple Pay Merchant Identity

Updated by end of 2021

  • Apple Push Notification service SSL (Sandbox)
  • Apple Push Notification service SSL (Sandbox and Production)
  • macOS Apple Push Notification service SSL (Production)
  • Website Push ID
  • WatchKit Services
  • VoIP Services
  • Pass Type ID
  • Pass Type ID with NFC support
  • App Store Receipt Signing

No changes

These certificates are not associated with the Apple Worldwide Developer Intermediate Certificate and are not affected by this change.

  • Developer ID Application
  • Developer ID Application with KEXT
  • Developer ID Installer
  • Apple Pay Payment Processing

 

 

Apple Worldwide Developer Relations Intermediate Certificate - Support - Apple Developer

Feedback Assistant Submit bug reports and request enhancements to APIs and developer tools. Send us feedback

developer.apple.com

 

반응형

 

 

보통 "아니요"를 눌러서 바로 TestFlight에 등록하지만, code 상에서 미리 넣어 둘 수 있다.

Info.plist

<key>ITSAppUsesNonExemptEncryption</key><false/>

 

 

help.apple.com/xcode/mac/current/#/dev0dc15d044

 

https://help.apple.com/xcode/mac/current/#/dev0dc15d044

To see this page, you must enable JavaScript. Pour afficher cette page, vous devez activer JavaScript. Zur Anzeige dieser Seite müssen Sie JavaScript aktivieren. このページを表示するには、JavaScript を有効にする必要があります。

help.apple.com

 

반응형
  1. fullScreen
  2. pageSheet
  3. formSheet
  4. currentContext
  5. custom
  6. overFullScreen
  7. overCurrentContext
  8. popover
  9. none

 

https://developer.apple.com/documentation/uikit/uimodalpresentationstyle

 

UIModalPresentationStyle - UIKit | Apple Developer Documentation

Enumeration UIModalPresentationStyle Modal presentation styles available when presenting view controllers. Declarationenum UIModalPresentationStyle : Int TopicsPresentationscase noneA presentation style that indicates no adaptations should be made. case fu

developer.apple.com

 

반응형

수익 창출 및 광고

 

2020년 4월 16일 이후에 게시되는 신규 앱 또는 업데이트에는 모두 최신 버전의 개발자 프로그램 정책이 바로 적용됩니다. 2020년 4월 16일 자로 Google Play에 게재된 앱은 이 날짜로부터 60일 이내에 정책을 준수해야 합니다.

정기 결제

개발자는 앱 내에서 제공하는 정기 결제 서비스나 콘텐츠에 관해 사용자를 오도해서는 안 됩니다. 모든 인앱 프로모션 또는 스플래시 화면에서 명확한 정보를 전달하는 것이 중요합니다.

앱 내에서는 혜택에 관해 투명하게 설명해야 합니다. 여기에는 정기 결제 가격, 결제 주기 빈도, 앱을 사용하려면 정기 결제가 필요한지 등 혜택의 조건을 명확하게 설명하는 것이 포함됩니다. 사용자가 추가적인 조치를 취하지 않아도 이러한 정보를 검토할 수 있어야 합니다.

 

다음은 자주 발생하는 위반 사례입니다.

  • 월별 정기 결제에서 사용자에게 정기 결제가 자동 갱신되어 매달 요금이 청구된다는 사실을 알리지 않습니다.
  • 연간 정기 결제에서 월간 정기 결제 가격을 가장 두드러지게 표시합니다.
  • 정기 결제 가격 및 약관이 완전히 현지화되어 있지 않습니다.
  • 인앱 프로모션에서 정기 결제 없이도 콘텐츠에 액세스할 수 있다는 점(가능한 경우)을 명확하게 설명하지 않습니다.
  • SKU 이름이 정기 결제의 성격을 정확하게 전달하지 않습니다. 예를 들어 자동으로 반복 요금이 청구되는 정기 결제의 이름이 '무료 체험판'인 경우가 있습니다.

 

① 닫기 버튼이 명확하게 보이지 않으며 사용자가 정기 결제 혜택을 수락하지 않아도 기능에 액세스할 수 있다는 사실을 이해할 수 없습니다.

 

② 혜택에 월별 가격만 표시되어 있어 사용자가 정기 결제를 신청할 때 6개월 가격이 청구된다는 사실을 이해할 수 없습니다.

 

③ 혜택에 신규 할인 가격만 표시되어 있어 신규 할인 기간이 종료된 후 어떤 가격이 자동으로 청구되는지 사용자가 이해할 수 없습니다.

 

④ 혜택은 사용자가 혜택의 전체 내용을 이해할 수 있도록 이용약관과 동일한 언어로 현지화되어 있어야 합니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

무료 체험판 및 신규 할인 혜택

사용자가 정기 결제에 등록하기 전: 기간, 가격, 사용 가능한 콘텐츠 또는 서비스 설명 등 제안의 조건을 명확하고 정확하게 설명해야 합니다. 무료 체험판이 유료 정기 결제로 전환되는 시점과 방식, 유료 정기 결제의 가격, 유료 정기 결제로 전환하고 싶지 않은 경우 정기 결제를 취소할 수 있음을 사용자에게 알려야 합니다.

다음은 자주 발생하는 위반 사례입니다.

  • 무료 체험판 기간 또는 신규 할인 가격의 적용 기간을 명확하게 설명하지 않습니다.
  • 제안 기간이 끝나면 유료 정기 결제로 자동 전환된다는 사실을 사용자에게 명확하게 설명하지 않습니다.
  • 체험판 없이도 콘텐츠를 사용할 수 있다는 점(가능한 경우)을 명확하게 설명하지 않습니다.
  • 현지화가 완료되지 않은 가격 및 약관을 제공합니다.

 

 

① 닫기 버튼이 명확하게 보이지 않아서 사용자가 무료 체험판에 가입하지 않아도 기능에 액세스할 수 있다는 사실을 알 수 없습니다.

 

② 제안에서 무료 체험판임을 강조해서 사용자는 체험 기간이 종료되면 자동으로 요금이 청구된다는 사실을 알 수 없습니다.

 

③ 제안에 체험 기간이 명시되어 있지 않아서 사용자가 정기 결제 콘텐츠에 언제까지 무료로 액세스할 수 있는지 알 수 없습니다.

 

④ 제안은 사용자가 제안의 전체 내용을 이해할 수 있도록 이용약관과 동일한 언어로 현지화되어 있어야 합니다.

 

 

 

 

 

 

 

 

정기 결제 관리 및 취소

개발자는 사용자가 정기 결제를 관리 또는 취소하는 방법이 앱에 명확하게 설명되어 있는지 확인해야 합니다.

Google Play 정책에 따르면 사용자가 Google Play의 앱에서 신청한 정기 결제를 취소할 경우 현재 결제 기간에 해당하는 요금을 환불받을 수 없지만, 취소일과 관계없이 현재 결제 기간에서 남은 기간 동안 정기 결제 콘텐츠를 계속해서 이용할 수 있습니다. 사용자의 정기 결제 취소는 현재 결제 기간이 지난 이후 적용됩니다.

개발자는 콘텐츠 또는 액세스 권한 제공자로서 사용자에게 더 유리한 환불 정책을 직접 적용할 수 있습니다. 사용자에게 정기 결제, 취소, 환불 정책의 변경사항을 알리고 정책이 관련 법규를 준수하도록 할 의무는 개발자에게 있습니다.

 

 

 

play.google.com/about/monetization-ads/subscriptions/

 

 

정기 결제 | 수익 창출 및 광고 - 개발자 정책 센터

최상의 사용자 환경을 구현하려면 Google의 수익 창출 및 광고 가이드라인을 준수해야 합니다.

play.google.com

 

반응형

DisplayMetrics DisplayMetrics 구조체에서 디스플레이에 대한 정보를 얻을 수 있다. 

Android는 직접 픽셀 매핑을 사용하지 않지만 소수의 Density Independent Pixel 값을 사용하여 실제 화면 크기에 맞게 조정한다. 

 

| 방법1. 밀도 상수로 구분

DisplayMetrics metrics = getResources().getDisplayMetrics();
int density = metrics.densityDpi
// DENSITY_xxx 상수 (120, 160, 213, 240, 320, 480 또는 640 dpi) 중 하나
 

 

** 실제lcd 픽셀 밀도가 필요한 경우

수평 및 수직 밀도 각각에 대해 metrics.xdpi  metrics.ydpi 속성에서 가져올 수 있다. 

DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);

// will either be DENSITY_LOW, DENSITY_MEDIUM or DENSITY_HIGH
int dpiClassification = dm.densityDpi;

// these will return the actual dpi horizontally and vertically
float xDpi = dm.xdpi;
float yDpi = dm.ydpi;

 

| 방법2. 상수값으로 구분

//방법 2 상수
getResources().getDisplayMetrics().density;

/*
0.75 - ldpi
1.0 - mdpi
1.5 - hdpi
2.0 - xhdpi
3.0 - xxhdpi
4.0 - xxxhdpi
*/

 

// 4이전의 API 수준을 대상으로 지정하는 경우 : metrics.density = 참조밀도(160dpi)의 소수점 배율 인수 
int densityDpi = (int)(metrics.density * 160f);

| Sample Code

int densityDpi = getResources().getDisplayMetrics().densityDpi;

switch (densityDpi)
{
    case DisplayMetrics.DENSITY_LOW:
        // LDPI : density == 0.75f
        break;

    case DisplayMetrics.DENSITY_MEDIUM:
        // MDPI : density >= 1.0f && density < 1.5f 
        break;

    case DisplayMetrics.DENSITY_TV:
    case DisplayMetrics.DENSITY_HIGH:
        // HDPI : density == 1.5f
        break;

    case DisplayMetrics.DENSITY_XHIGH:
    case DisplayMetrics.DENSITY_280:
        // XHDPI : density > 1.5f && density <= 2.0f
        break;

    case DisplayMetrics.DENSITY_XXHIGH:
    case DisplayMetrics.DENSITY_360:
    case DisplayMetrics.DENSITY_400:
    case DisplayMetrics.DENSITY_420:
        // XXHDPI : density > 2.0f && density <= 3.0f
        break;

    case DisplayMetrics.DENSITY_XXXHIGH:
    case DisplayMetrics.DENSITY_560:
        // XXXHDPI : density > 4.0f
        break;
}

 

 

Summary 

int DENSITY_140

Intermediate density for screens that sit between DENSITY_LOW (120dpi) and DENSITY_MEDIUM (160dpi).

int DENSITY_180

Intermediate density for screens that sit between DENSITY_MEDIUM (160dpi) and DENSITY_HIGH (240dpi).

int DENSITY_200

Intermediate density for screens that sit between DENSITY_MEDIUM (160dpi) and DENSITY_HIGH (240dpi).

int DENSITY_220

Intermediate density for screens that sit between DENSITY_MEDIUM (160dpi) and DENSITY_HIGH (240dpi).

int DENSITY_260

Intermediate density for screens that sit between DENSITY_HIGH (240dpi) and DENSITY_XHIGH (320dpi).

int DENSITY_280

Intermediate density for screens that sit between DENSITY_HIGH (240dpi) and DENSITY_XHIGH (320dpi).

int DENSITY_300

Intermediate density for screens that sit between DENSITY_HIGH (240dpi) and DENSITY_XHIGH (320dpi).

int DENSITY_340

Intermediate density for screens that sit somewhere between DENSITY_XHIGH (320 dpi) and DENSITY_XXHIGH (480 dpi).

int DENSITY_360

Intermediate density for screens that sit somewhere between DENSITY_XHIGH (320 dpi) and DENSITY_XXHIGH (480 dpi).

int DENSITY_400

Intermediate density for screens that sit somewhere between DENSITY_XHIGH (320 dpi) and DENSITY_XXHIGH (480 dpi).

int DENSITY_420

Intermediate density for screens that sit somewhere between DENSITY_XHIGH (320 dpi) and DENSITY_XXHIGH (480 dpi).

int DENSITY_440

Intermediate density for screens that sit somewhere between DENSITY_XHIGH (320 dpi) and DENSITY_XXHIGH (480 dpi).

int DENSITY_450

Intermediate density for screens that sit somewhere between DENSITY_XHIGH (320 dpi) and DENSITY_XXHIGH (480 dpi).

int DENSITY_560

Intermediate density for screens that sit somewhere between DENSITY_XXHIGH (480 dpi) and DENSITY_XXXHIGH (640 dpi).

int DENSITY_600

Intermediate density for screens that sit somewhere between DENSITY_XXHIGH (480 dpi) and DENSITY_XXXHIGH (640 dpi).

int DENSITY_DEFAULT

The reference density used throughout the system.

int DENSITY_HIGH

Standard quantized DPI for high-density screens.

int DENSITY_LOW

Standard quantized DPI for low-density screens.

int DENSITY_MEDIUM

Standard quantized DPI for medium-density screens.

int DENSITY_TV

This is a secondary density, added for some common screen configurations.

int DENSITY_XHIGH

Standard quantized DPI for extra-high-density screens.

int DENSITY_XXHIGH

Standard quantized DPI for extra-extra-high-density screens.

int DENSITY_XXXHIGH

Standard quantized DPI for extra-extra-extra-high-density screens.

Fields

public static final int DENSITY_DEVICE_STABLE

The device's stable density.

public float density

The logical density of the display.

public int densityDpi

The screen density expressed as dots-per-inch.

public int heightPixels

The absolute height of the available display size in pixels.

public float scaledDensity

A scaling factor for fonts displayed on the display.

public int widthPixels

The absolute width of the available display size in pixels.

public float xdpi

The exact physical pixels per inch of the screen in the X dimension.

public float ydpi

The exact physical pixels per inch of the screen in the Y dimension.

Public constructors

DisplayMetrics()

Public methods

boolean equals(Object o)

Indicates whether some other object is "equal to" this one.

boolean equals(DisplayMetrics other)

Returns true if these display metrics equal the other display metrics.

int hashCode()

Returns a hash code value for the object.

void setTo(DisplayMetrics o)
void setToDefaults()
String toString()

Returns a string representation of the object.

 

 

DisplayMetrics  |  Android 개발자  |  Android Developers

 

developer.android.com

 

반응형

Predefined sounds

There are some predefined system sounds, for the system sound ID in the range 1000 to 2000 (decimal), as shown below (from 2.0 to 5.0 beta). The system sounds are all stored in /System/Library/Audio/UISounds/.

 

Sound ID File name (iPhone) File name (iPod Touch) Category Note
1000 new-mail.caf new-mail.caf MailReceived  
1001 mail-sent.caf mail-sent.caf MailSent  
1002 Voicemail.caf Voicemail.caf VoicemailReceived  
1003 ReceivedMessage.caf ReceivedMessage.caf SMSReceived  
1004 SentMessage.caf SentMessage.caf SMSSent  
1005 alarm.caf sq_alarm.caf CalendarAlert  
1006 low_power.caf low_power.caf LowPower  
1007 sms-received1.caf sms-received1.caf SMSReceived_Alert  
1008 sms-received2.caf sms-received2.caf SMSReceived_Alert  
1009 sms-received3.caf sms-received3.caf SMSReceived_Alert  
1010 sms-received4.caf sms-received4.caf SMSReceived_Alert  
1011 - - SMSReceived_Vibrate  
1012 sms-received1.caf sms-received1.caf SMSReceived_Alert  
1013 sms-received5.caf sms-received5.caf SMSReceived_Alert  
1014 sms-received6.caf sms-received6.caf SMSReceived_Alert  
1015 Voicemail.caf Voicemail.caf - Available since 2.1
1016 tweet_sent.caf tweet_sent.caf SMSSent Available since 5.0
1020 Anticipate.caf Anticipate.caf SMSReceived_Alert Available since 4.2
1021 Bloom.caf Bloom.caf SMSReceived_Alert Available since 4.2
1022 Calypso.caf Calypso.caf SMSReceived_Alert Available since 4.2
1023 Choo_Choo.caf Choo_Choo.caf SMSReceived_Alert Available since 4.2
1024 Descent.caf Descent.caf SMSReceived_Alert Available since 4.2
1025 Fanfare.caf Fanfare.caf SMSReceived_Alert Available since 4.2
1026 Ladder.caf Ladder.caf SMSReceived_Alert Available since 4.2
1027 Minuet.caf Minuet.caf SMSReceived_Alert Available since 4.2
1028 News_Flash.caf News_Flash.caf SMSReceived_Alert Available since 4.2
1029 Noir.caf Noir.caf SMSReceived_Alert Available since 4.2
1030 Sherwood_Forest.caf Sherwood_Forest.caf SMSReceived_Alert Available since 4.2
1031 Spell.caf Spell.caf SMSReceived_Alert Available since 4.2
1032 Suspense.caf Suspense.caf SMSReceived_Alert Available since 4.2
1033 Telegraph.caf Telegraph.caf SMSReceived_Alert Available since 4.2
1034 Tiptoes.caf Tiptoes.caf SMSReceived_Alert Available since 4.2
1035 Typewriters.caf Typewriters.caf SMSReceived_Alert Available since 4.2
1036 Update.caf Update.caf SMSReceived_Alert Available since 4.2
1050 ussd.caf ussd.caf USSDAlert  
1051 SIMToolkitCallDropped.caf SIMToolkitCallDropped.caf SIMToolkitTone  
1052 SIMToolkitGeneralBeep.caf SIMToolkitGeneralBeep.caf SIMToolkitTone  
1053 SIMToolkitNegativeACK.caf SIMToolkitNegativeACK.caf SIMToolkitTone  
1054 SIMToolkitPositiveACK.caf SIMToolkitPositiveACK.caf SIMToolkitTone  
1055 SIMToolkitSMS.caf SIMToolkitSMS.caf SIMToolkitTone  
1057 Tink.caf Tink.caf PINKeyPressed  
1070 ct-busy.caf ct-busy.caf AudioToneBusy There was no category for this sound before 4.0.
1071 ct-congestion.caf ct-congestion.caf AudioToneCongestion There was no category for this sound before 4.0.
1072 ct-path-ack.caf ct-path-ack.caf AudioTonePathAcknowledge There was no category for this sound before 4.0.
1073 ct-error.caf ct-error.caf AudioToneError There was no category for this sound before 4.0.
1074 ct-call-waiting.caf ct-call-waiting.caf AudioToneCallWaiting There was no category for this sound before 4.0.
1075 ct-keytone2.caf ct-keytone2.caf AudioToneKey2 There was no category for this sound before 4.0.
1100 lock.caf sq_lock.caf ScreenLocked  
1101 unlock.caf sq_lock.caf ScreenUnlocked  
1102 - - FailedUnlock  
1103 Tink.caf sq_tock.caf KeyPressed  
1104 Tock.caf sq_tock.caf KeyPressed  
1105 Tock.caf sq_tock.caf KeyPressed  
1106 beep-beep.caf sq_beep-beep.caf ConnectedToPower  
1107 RingerChanged.caf RingerChanged.caf RingerSwitchIndication  
1108 photoShutter.caf photoShutter.caf CameraShutter  
1109 shake.caf shake.caf ShakeToShuffle Available since 3.0
1110 jbl_begin.caf jbl_begin.caf JBL_Begin Available since 3.0
1111 jbl_confirm.caf jbl_confirm.caf JBL_Confirm Available since 3.0
1112 jbl_cancel.caf jbl_cancel.caf JBL_Cancel Available since 3.0
1113 begin_record.caf begin_record.caf BeginRecording Available since 3.0
1114 end_record.caf end_record.caf EndRecording Available since 3.0
1115 jbl_ambiguous.caf jbl_ambiguous.caf JBL_Ambiguous Available since 3.0
1116 jbl_no_match.caf jbl_no_match.caf JBL_NoMatch Available since 3.0
1117 begin_video_record.caf begin_video_record.caf BeginVideoRecording Available since 3.0
1118 end_video_record.caf end_video_record.caf EndVideoRecording Available since 3.0
1150 vc~invitation-accepted.caf vc~invitation-accepted.caf VCInvitationAccepted Available since 4.0
1151 vc~ringing.caf vc~ringing.caf VCRinging Available since 4.0
1152 vc~ended.caf vc~ended.caf VCEnded Available since 4.0
1153 ct-call-waiting.caf ct-call-waiting.caf VCCallWaiting Available since 4.1
1154 vc~ringing.caf vc~ringing.caf VCCallUpgrade Available since 4.1
1200 dtmf-0.caf dtmf-0.caf TouchTone  
1201 dtmf-1.caf dtmf-1.caf TouchTone  
1202 dtmf-2.caf dtmf-2.caf TouchTone  
1203 dtmf-3.caf dtmf-3.caf TouchTone  
1204 dtmf-4.caf dtmf-4.caf TouchTone  
1205 dtmf-5.caf dtmf-5.caf TouchTone  
1206 dtmf-6.caf dtmf-6.caf TouchTone  
1207 dtmf-7.caf dtmf-7.caf TouchTone  
1208 dtmf-8.caf dtmf-8.caf TouchTone  
1209 dtmf-9.caf dtmf-9.caf TouchTone  
1210 dtmf-star.caf dtmf-star.caf TouchTone  
1211 dtmf-pound.caf dtmf-pound.caf TouchTone  
1254 long_low_short_high.caf long_low_short_high.caf Headset_StartCall  
1255 short_double_high.caf short_double_high.caf Headset_Redial  
1256 short_low_high.caf short_low_high.caf Headset_AnswerCall  
1257 short_double_low.caf short_double_low.caf Headset_EndCall  
1258 short_double_low.caf short_double_low.caf Headset_CallWaitingActions  
1259 middle_9_short_double_low.caf middle_9_short_double_low.caf Headset_TransitionEnd  
1300 Voicemail.caf Voicemail.caf SystemSoundPreview  
1301 ReceivedMessage.caf ReceivedMessage.caf SystemSoundPreview  
1302 new-mail.caf new-mail.caf SystemSoundPreview  
1303 mail-sent.caf mail-sent.caf SystemSoundPreview  
1304 alarm.caf sq_alarm.caf SystemSoundPreview  
1305 lock.caf sq_lock.caf SystemSoundPreview  
1306 Tock.caf sq_tock.caf KeyPressClickPreview The category was SystemSoundPreview before 3.2.
1307 sms-received1.caf sms-received1.caf SMSReceived_Selection  
1308 sms-received2.caf sms-received2.caf SMSReceived_Selection  
1309 sms-received3.caf sms-received3.caf SMSReceived_Selection  
1310 sms-received4.caf sms-received4.caf SMSReceived_Selection  
1311 - - SMSReceived_Vibrate  
1312 sms-received1.caf sms-received1.caf SMSReceived_Selection  
1313 sms-received5.caf sms-received5.caf SMSReceived_Selection  
1314 sms-received6.caf sms-received6.caf SMSReceived_Selection  
1315 Voicemail.caf Voicemail.caf SystemSoundPreview Available since 2.1
1320 Anticipate.caf Anticipate.caf SMSReceived_Selection Available since 4.2
1321 Bloom.caf Bloom.caf SMSReceived_Selection Available since 4.2
1322 Calypso.caf Calypso.caf SMSReceived_Selection Available since 4.2
1323 Choo_Choo.caf Choo_Choo.caf SMSReceived_Selection Available since 4.2
1324 Descent.caf Descent.caf SMSReceived_Selection Available since 4.2
1325 Fanfare.caf Fanfare.caf SMSReceived_Selection Available since 4.2
1326 Ladder.caf Ladder.caf SMSReceived_Selection Available since 4.2
1327 Minuet.caf Minuet.caf SMSReceived_Selection Available since 4.2
1328 News_Flash.caf News_Flash.caf SMSReceived_Selection Available since 4.2
1329 Noir.caf Noir.caf SMSReceived_Selection Available since 4.2
1330 Sherwood_Forest.caf Sherwood_Forest.caf SMSReceived_Selection Available since 4.2
1331 Spell.caf Spell.caf SMSReceived_Selection Available since 4.2
1332 Suspense.caf Suspense.caf SMSReceived_Selection Available since 4.2
1333 Telegraph.caf Telegraph.caf SMSReceived_Selection Available since 4.2
1334 Tiptoes.caf Tiptoes.caf SMSReceived_Selection Available since 4.2
1335 Typewriters.caf Typewriters.caf SMSReceived_Selection Available since 4.2
1336 Update.caf Update.caf SMSReceived_Selection Available since 4.2
1350 - - RingerVibeChanged  
1351 - - SilentVibeChanged  
4095 - - Vibrate There was no category for this sound before 2.2.
In the SDK this is the constant kSystemSoundID_Vibrate.

 

http://iphonedevwiki.net/index.php/AudioServices

 

AudioServices - iPhone Development Wiki

From iPhone Development Wiki AudioServices is a group of C functions in AudioToolbox for playing short (≤30 seconds) sounds. Predefined sounds There are some predefined system sounds, for the system sound ID in the range 1000 to 2000 (decimal), as shown be

iphonedevwiki.net

 

http://onj3.andrelouis.com/phonetones/unzipped/Apple-iOS10/System/Library/Audio/UISounds/New/

 

Index of /phonetones/unzipped/Apple-iOS10/System/Library/Audio/UISounds/New

 

onj3.andrelouis.com

 

반응형

+ Recent posts