PRIVACY POLICY - CALLIXO
INTRODUCTION
Callixo is a call animation application that displays custom animations when you receive phone calls. This Privacy Policy explains how we collect, use, and protect your information.
Our Core Principle: Your privacy is paramount. All data stays on your device. We do not collect, transmit, or store any personal information on our servers.
WHAT CALLIXO DOES
Callixo's core and only functionality is to:
- Detect incoming phone calls
- Identify the caller (name and number)
- Display a custom animation overlay on your screen
- Allow you to answer or reject calls from the animation overlay
Important: Without these capabilities, Callixo has no functionality. The app's entire purpose is call animation display.
PERMISSIONS WE REQUEST AND WHY
π΄ CRITICAL PERMISSIONS (Required for Core Functionality)
1. READ_PHONE_STATE (Phone Permission)
- Purpose: Detect when a phone call is incoming, ongoing, or ended
- What we access: Call state only (RINGING, OFFHOOK, IDLE)
- What we DO NOT access: Call duration, call history, call records
- Usage: Monitor call state changes to show/hide animation overlay
- Storage: Call state is not stored
- Transmission: Call state is never transmitted
- Android Requirement: Mandatory for any app that needs to detect phone calls
2. READ_CALL_LOG (Call Log Permission)
Why we need this:
- Android 9 and below: The incoming phone number is NOT available through READ_PHONE_STATE alone
- Technical limitation: Android's broadcast
ACTION_PHONE_STATE_CHANGED provides the phone number in EXTRA_INCOMING_NUMBER, but starting from Android 9 (API 28), this extra returns null for privacy reasons
- Only alternative: Access the most recent entry in call log to get the incoming number
What we access:
- The phone number of the current incoming call only
- Only during active incoming calls
- Only the most recent call log entry
What we DO NOT access:
- β Historical call records
- β Call durations
- β Past call history
- β Outgoing call information
Usage:
- Match incoming number with your contacts
- Display caller name on animation overlay
- Determine which custom animation to show
Storage: Phone numbers are NOT stored or logged
Transmission: Phone numbers are NOT sent to any server
Processing: Phone number is processed in real-time and immediately discarded after call ends
Alternative for Android 10+:
- For Android 10+ (API 29+), we use
CallScreeningService (Google's official API)
- CallScreeningService provides phone numbers without READ_CALL_LOG
- However, READ_CALL_LOG is still required for Android 9 users
Why we can't drop Android 9 support:
- Approximately 30% of our users are on Android 9
- Dropping support would abandon these users
- No alternative method exists for Android 9
3. READ_CONTACTS (Contacts Permission)
- Purpose: Match incoming phone numbers with contact names
- What we access: Contact display names and phone numbers
- What we DO NOT access: Contact photos, emails, addresses, or other contact data
- Usage: Display caller name instead of just phone number, allow you to assign custom animations to specific contacts
- Storage: Contact information remains on your device only
- Transmission: Contact information is never sent to our servers
- Processing: Only accessed when matching incoming call numbers
4. ANSWER_PHONE_CALLS (Call Control Permission)
- Purpose: Allow you to answer or reject calls from the animation overlay
- What we access: Ability to answer incoming calls programmatically
- Usage: When you tap "Answer" or "Reject" button on animation overlay
- User Control: YOU initiate the action by tapping buttons
What we DO NOT do:
- β We do NOT automatically answer calls
- β We do NOT answer calls without your explicit action
- β We do NOT make outgoing calls
Technical requirement: Required by Android to programmatically answer calls
Alternative: Without this, the answer/reject buttons would not work
π‘ ESSENTIAL PERMISSIONS (Required for Full Experience)
5. CAMERA (Camera Permission)
- Purpose: Record custom animation videos for contacts
- Usage: Only when YOU choose to record a custom animation
- Storage: Videos are stored locally on your device
- Transmission: Videos are never uploaded to any server
- User Control: Camera only activates when you explicitly record
6. RECORD_AUDIO (Microphone Permission)
- Purpose: Record audio for custom animation videos
- Usage: Only during custom animation recording
- Storage: Audio stored locally with video
- Transmission: Audio is never transmitted
- User Control: Only active during your recording sessions
7. SYSTEM_ALERT_WINDOW (Display Over Other Apps)
- Purpose: Show animation overlay on top of incoming call screen
- What we display: Custom animations during incoming calls
- When we display: Only during active incoming calls
- What we DO NOT display: Overlays during normal phone usage
- User Control: You can disable this in Android settings anytime
8. READ_EXTERNAL_STORAGE / READ_MEDIA_IMAGES / READ_MEDIA_VIDEO
- Purpose: Access animation files you've saved
- Usage: Load custom animation videos from your device
- What we access: Only video files in app's designated folder
- What we DO NOT access: Your personal photos, documents, or other files
- Android Version: Different permissions for different Android versions
π’ OPTIONAL PERMISSIONS (Enhance Experience)
9. POST_NOTIFICATIONS (Android 13+)
- Purpose: Show status notifications
- Usage: Notify you of app status, settings reminders
- Content: No personal information in notifications
- Frequency: Minimal, only for important app status
HOW WE USE YOUR DATA
Data Flow Explanation:
- Incoming Call Detected (via READ_PHONE_STATE)
- Phone Number Retrieved (via READ_CALL_LOG on Android 9, or CallScreeningService on Android 10+)
- Contact Matched (via READ_CONTACTS - local lookup only)
- Animation Displayed (via SYSTEM_ALERT_WINDOW)
- Call Answered/Rejected (via ANSWER_PHONE_CALLS - only when YOU tap button)
- Data Discarded (immediately after call ends)
Critical Point: Steps 2-5 happen in real-time. Nothing is stored. Nothing is transmitted.
DATA STORAGE AND RETENTION
What We Store Locally on Your Device:
- β Custom animation videos you record
- β Contact-to-animation assignments you create
- β App settings and preferences
- β Premium purchase status (via Google Play)
What We DO NOT Store:
- β Phone numbers
- β Call logs
- β Call history
- β Call durations
- β Contact information (we only read it, never store it)
- β Any data on external servers
DATA TRANSMISSION
We do NOT transmit any data to external servers.
- β No phone numbers sent
- β No call logs sent
- β No contact information sent
- β No analytics sent
- β No tracking data sent
The only network communication:
- β Google Play Billing (for premium features - handled by Google)
- β App updates (handled by Google Play Store)
YOUR RIGHTS AND CONTROLS
You have complete control over your data:
Permission Management:
- Go to Android Settings β Apps β Callixo β Permissions
- Disable any permission anytime
- Note: Disabling critical permissions will prevent core functionality
Data Deletion:
- Delete custom animations: Callixo β Contact β Delete Animation
- Delete all data: Uninstall the app
- Clear associations: Callixo β Settings β Reset Associations
SECURITY MEASURES
How We Protect Your Data:
- Local-Only Storage - All data stays on your device, no cloud synchronization
- Minimal Data Collection - We only access what's absolutely necessary
- No User Accounts - No registration, login, or user profiles required
- Encryption - Sensitive app settings encrypted on device
COMPLIANCE WITH GOOGLE PLAY POLICIES
We comply with Google Play's Permissions and APIs that Access Sensitive Information policy:
Call Log Permission Justification:
- β Core Functionality: Callixo's sole purpose is displaying call animations
- β No Alternative: Android 9 provides no alternative method to get incoming numbers
- β Minimal Access: Only current call, not historical data
- β Transparent Usage: Clearly disclosed in this policy
- β User Control: Users can revoke permission anytime
CHILDREN'S PRIVACY
Callixo is not directed to children under 13. We do not knowingly collect data from children. If we learn a child under 13 has provided data, we will delete it. Parents: If you believe your child has used this app, contact us.
CHANGES TO THIS POLICY
We may update this Privacy Policy. Changes will be posted here and in the app. Updates take effect when posted.
SUMMARY (TL;DR)
What Callixo does:
- Shows animations during phone calls
What we access:
- Phone numbers (to show caller name)
- Contacts (to match names)
- Call state (to know when to show animation)
What we DON'T do:
- Store your call history
- Send data to servers
- Track your activity
- Share your information
Your control:
- Revoke permissions anytime
- Delete all data by uninstalling
- Contact us with any concerns