android 9.0適合

2113 ワード

通話記録へのアクセス制限
Android 9は、CALL_LOG を導入し、READ_CALL_LOGWRITE_CALL_LOGPROCESS_OUTGOING_CALLSの権限をグループに移動します.以前のAndroidバージョンでは、これらの権限はPHONE権限グループにありました.
アプリケーションが通話記録にアクセスする必要がある場合、または発信を処理する必要がある場合は、CALL_LOG権限グループにこれらの権限を明確に要求する必要があります.そうでないとSecurityExceptionが発生します.
アクセス制限電話番号READ_CALL_LOG が最初に取得されていない場合、Android 9上で動作するアプリケーションは、アプリケーションの使用例に必要な他の権限を除き、電話番号や携帯電話の状態を読み取ることができない.
着信および発信に関連する電話番号は、携帯電話の状態放送(例えば、着信および発信の携帯電話の状態放送)で見ることができ、PhoneStateListener を介してアクセスすることができる.しかし、READ_CALL_LOG がなければPHONE_STATE_CHANGEDブロードキャストとPhoneStateListenerが提供する電話番号フィールドは空です.
携帯電話のステータスから電話番号を読み取るには、使用例に従ってアプリケーションを更新して必要な権限を要求します.
  • PHONEを通過するSTATE Intentは、READ_CALL_LOG およびREAD_PHONE_STATE の両方の電話番号の読み取りを操作する.
  • onCallStateChanged()から電話番号を読み取るには、READ_CALL_LOG だけです.READ_PHONE_STATE は必要ありません.

  • 明文トラフィックを制限したネットワーク(HTTP)リクエストは,暗号化されていないトラフィックリクエストがシステムによって禁止され,HTTPSの使用が要求される.
    ソリューション:
    1:resの下にxmlディレクトリを新規作成し、network_という名前を作成します.security_config.xmlファイルです.このファイルの内容は次のとおりです.
    
    
        
    
    

    そしてAndroidManifestでxmlアプリケーションラベルには、上記のxml構成が適用されます.
            android:name=".App"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:networkSecurityConfig="@xml/network_security_config"
            android:roundIcon="@mipmap/ic_launcher_round"
            android:theme="@style/AppTheme">
    

    2.サーバもローカルアプリケーションもhttpsに変更(推奨)
    3.targetSdkValerson降格は27に戻る