이것은 간단한 질문이며, 아마도 간단한 대답이지만 엄청난 양의 문맥이 있습니다.RingtoneManager.setActualDefaultRingtoneUri()가 API 23에서 작동합니까?
질문 :은 setActualDefaultRingtoneUri()
이 여전히 API 23에서 작동합니까? 나는 그것이 문맥
기능을 얻을 수 없기 때문에 : 내가
<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
와 AndroidManifest.xml
을 설정 한 앱 자체는이 코드
public void desirePermissionCode()
{
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && !Settings.System.canWrite(this)) {
new AlertDialog.Builder(this)
.setMessage("Please Assign Meep Meep Write Permissions")
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Intent intent = new Intent(android.provider.Settings.ACTION_MANAGE_WRITE_SETTINGS);
intent.setData(Uri.parse("package:" + getPackageName()));
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
try {
startActivity(intent);
} catch (Exception e) {
Log.e("MainActivity", "error starting permission intent", e);
}
}
})
.show();
return;
}
}
I과 권한을 할당 간단한 2 버튼 데모가 있습니다 (작동하지 않는 경우)
Uri uri = Uri.parse("android.resource://" + getPackageName() + "/raw/meepmeep");
grantUriPermission("com.android.systemui", uri,
Intent.FLAG_GRANT_READ_URI_PERMISSION);
RingtoneManager.setActualDefaultRingtoneUri(
MainActivity.this,
RingtoneManager.TYPE_RINGTONE,
uri
);
이 하나 (하지 작업)
MediaPlayer mpintro;
mpintro = MediaPlayer.create(me, Uri.parse("android.resource://"+getPackageName()+"/raw/meepmeep"));
mpintro.start();
2 권한을 추가하고, meepmeep.mp3
는 고해상도 폴더에, 왜 이벤트 화재가 재생 않을 때 왜 누군가가 나에게 설명 할 수 응용 프로그램에서 소리 만 RingtoneManager.setActualDefaultRingtoneUri
예 '명확하게'예제 코드가 작동하는 것을 보여 주지만 고맙습니다. 작동하지 않습니다. –
@MrHeelis startActivity (의도)를 사용하지 말고 startActivityForResult를 사용하여 MANAGE_WRITE_SETTINGS 활동의 의견을 들어주세요. onActivityResult 메서드에서 요청 코드를 확인하고 Settings.System.canWrite를 다시 확인할 수 있습니다. 이제 쓰기 권한이 있으면 벨소리를 다시 설정해야합니다. 자동이 아닙니다. – Hexise
@ MrHeelis btw, 원시 리소스 대신 휴대 전화 외장 저장 장치에서 벨소리를 설정할 수 있습니까? 이것이 문제인지 확실하지 않습니다. – Hexise