2
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.SEND_SMS) == PackageManager.PERMISSION_GRANTED) { 
     try { 
      Cursor temp = db.rawQuery("Select name from profile;", null); 
      temp.moveToFirst(); 
      Toast.makeText(TrustedContacts.this, ""+c.getString(2), Toast.LENGTH_SHORT).show(); 
      (SmsManager.getDefault()).sendTextMessage("0"+c.getString(2), null, "Automated SMS by Medical Alert App by " + temp.getString(0), null, null); 
      Toast.makeText(TrustedContacts.this, "SMS Sent!", Toast.LENGTH_SHORT).show(); 
     } 
     catch (Exception e) 
     { 
      Toast.makeText(TrustedContacts.this, ""+e.getMessage(), Toast.LENGTH_SHORT).show(); 
     } 
    } else 
     ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.SEND_SMS}, 1); 

다음은 권한 부여시 SMS 관리자를 통해 SMS를 보내는 코드이지만 사용 권한 대화 상자가 표시되지 않습니다.권한 대화 상자 안드로이드 6.0.1 (Marshmallow)

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 
<uses-permission android:name="android.permission.SEND_SMS"/> 
<uses-permission android:name="android.permission.CALL_PHONE" /> 

나는 매니페스트 파일에도 권한을 추가했습니다. 수신 부트 완료 허가와 동일한 시나리오. 그러나 Call_Phone 권한은 완벽하게 작동합니다. 문제를 식별 할 수 없습니다. 안드로이드 스튜디오 TargetAPI 23 MinAPI는 마시멜로 만 가지고있는 권한 (연락처 읽어, SMS 보내기) 다음 같은 개인 정보 보호 문제가 발생할 수 있음을 사용자의 관점에 대한 중요하는 응용 프로그램에서 일부 DANGEROUS PERMISSION을 촬영 한 경우 (15)

+0

@MikeM. 대상 버전 SDK는 build.gradle에서 23으로 설정됩니다. 전화 통화 허용 대화 상자 만 표시되고 나머지는 표시되지 않습니다. –

+0

예, 방금 'CALL_PHONE'이 작동한다고 언급 한 것을 알게되었습니다. SMS를 보낼 수 있습니까? 내 말은, 너는 실제로 허락을 받았 는가? Btw,'RECEIVE_BOOT_COMPLETED'는 위험한 권한이 아니므로 런타임에 요청할 필요가 없습니다. –

+0

아니요, SMS를 보낼 수 없습니다. 컨트롤은 else 파트를 입력하고 표시하지 않고 계속 진행됩니다. –

답변