آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
مشکل عدم دسترسی خریداران پیشین به برخی آموزش ها برطرف شد
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

تغییر صدای زنگ گوشی با کد !

یزدانی  10 سال پیش  9 سال پیش
+30 0

سلام دوستان بعد از کلی تلاش و جستجو بلاخره تونستم صدای زنگ رو از داخل برنامه تغییر بدم ! :D

گفتم اینجا بزارم تا دوستان هم استفاده کنن!

لطفا با لایک همراهی کنید !

خیلی کار سختی نیست و کلا تو کد مشخصه که چکار باید بکنید من این کد رو داخل یک دکمه استفاده کردم هرجاش مشکل داشتید بگید!

 Button btn1 = (Button) findViewById(R.id.btn1);
        btn1.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                String filename = "yes.mp3";
File k = new File(G.DIR_PATH, filename); ContentValues values = new ContentValues(); values.put(MediaStore.MediaColumns.DATA, k.getAbsolutePath()); values.put(MediaStore.MediaColumns.TITLE, "yes"); values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/mp3"); values.put(MediaStore.Audio.Media.ARTIST, ""); values.put(MediaStore.Audio.Media.IS_RINGTONE, true); values.put(MediaStore.Audio.Media.IS_NOTIFICATION, false); values.put(MediaStore.Audio.Media.IS_ALARM, false); values.put(MediaStore.Audio.Media.IS_MUSIC, false); //Insert it into the database Uri uri = MediaStore.Audio.Media.getContentUriForPath(k.getAbsolutePath()); getContentResolver().delete(uri, MediaStore.MediaColumns.DATA + "=\"" + k.getAbsolutePath() + "\"", null); Uri newUri = getContentResolver().insert(uri, values); RingtoneManager.setActualDefaultRingtoneUri(SoundActivity.this, RingtoneManager.TYPE_RINGTONE, newUri); } });
0 0
مشترک (10 سال پیش)
0 0
دوستان من از این کد استقاده کردم.با کلیک روی دکمه آهنگ به عنوان رینگتون ست میشه اما وقتی تو تنظیمات میرم فقط اسمش هست.نه واقعا تنظیم شده نه پلی میشه.کسی میدونه مشکل چیه؟؟؟ (10 سال پیش)
 برای این سوال 5 پاسخ وجود دارد.
پاسخ به سوال 
Hajhosseini  10 سال پیش
+6 0

دوست عزیز کدی که در بالا استفاده کردید کار میکنه ، ولی اگر گوشی رو ریست کنید رینگتون عوض میشه ، برای حل این مشکل فقط یک راه هست اونم اینه که رینگتون رو ابتدا در آدرس : 

 Environment.getExternalStorageDirectory() + "/media/" + fileName

کپی کنید ، و بعد دستورات ست کردن رینگتون که گفتید رو انجام بدید

پاسخ به سوال 
ATRAS  10 سال پیش
+4 0

دوستان من این کدو تو گوشی وقتی اجرا میکنم برنامه دیگه نمیتونه ادامه بده بسته میشه.مشکل از کجاست.کد تقریبا شبیه به کد لینک بالاست.

   btnringtone.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {

File k = new File(G.DIR_APP, item.musicname+ ".mp3");
if (k.exists()) {
ContentValues values = new ContentValues();
values.put(MediaStore.MediaColumns.DATA, k.getAbsolutePath());
values.put(MediaStore.MediaColumns.TITLE, "" + item.musicname+ ".mp3");
values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/mp3");
values.put(MediaStore.MediaColumns.SIZE, k.length());
values.put(MediaStore.Audio.Media.ARTIST, "avida ");
values.put(MediaStore.Audio.Media.IS_RINGTONE, true);
values.put(MediaStore.Audio.Media.IS_NOTIFICATION, false);
values.put(MediaStore.Audio.Media.IS_ALARM, true);
values.put(MediaStore.Audio.Media.IS_MUSIC, false);

Uri uri = MediaStore.Audio.Media.getContentUriForPath(k.getAbsolutePath());
G.context.getContentResolver().delete(uri, MediaStore.MediaColumns.DATA + "=\"" + k.getAbsolutePath() + "\"", null);
Uri newUri = G.currentActivity.getContentResolver().insert(uri, values);
RingtoneManager.setActualDefaultRingtoneUri(G.context, RingtoneManager.TYPE_RINGTONE, newUri);

Toast.makeText(G.context, "زنگ تماس شما با موفقیت تغیر یافت.", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(G.context, "فایل در حافظه شما موجود نمی باشد!", Toast.LENGTH_SHORT).show();
}

}
});
0 0
این دسترسی رو به Manifast اضافه کردین ؟ (10 سال پیش)
0 0
(10 سال پیش)
0 0
کد کامل اینجا نمیشه کپی کرد. ==> android.permission.WRITE_EXTERNAL_STORAGE (10 سال پیش)
0 0
بله اظافه کردم.تو جنیموشن خطایی نمیده ولی تو گوشی خطا میده معلومم نیست کجاشو ایراد میگیره. (10 سال پیش)
0 0
خب از try catch استفاده کنید ببینم چه پیغام خطایی رو میده ؟ (10 سال پیش)
پاسخ به سوال 
ATRAS  10 سال پیش
+1 0

تو جنیموشن که خطا نمیده.تو گوشی خطا میده که نمیشه خطا رو خوند. ولی وقتی این تیکه از کدو برمیدارم دیگه خطا نمیده ولی زنگ گوشی هم تغییر نمیکنه.

 Uri newUri = G.currentActivity.getContentResolver().insert(uri, values);
پاسخ به سوال 
ATRAS  10 سال پیش
+1 0


Writing exception to parcel
java.lang.SecurityException: Permission Denial: writing com.android.providers.settings.SettingsProvider uri content://settings/system from pid=7027, uid=10041 requires android.permission.WRITE_SETTINGS
at android.content.ContentProvider$Transport.enforceWritePermission(ContentProvider.java:349)
at android.content.ContentProvider$Transport.insert(ContentProvider.java:188)
at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:152)
at android.os.Binder.execTransact(Binder.java:338)
at dalvik.system.NativeStart.run(Native Method)
FATAL EXCEPTION: main
java.lang.SecurityException: Permission Denial: writing com.android.providers.settings.SettingsProvider uri content://settings/system from pid=7027, uid=10041 requires android.permission.WRITE_SETTINGS
at android.os.Parcel.readException(Parcel.java:1327)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:182)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:136)
at android.content.ContentProviderProxy.insert(ContentProviderNative.java:415)
at android.content.ContentResolver.insert(ContentResolver.java:730)
at android.provider.Settings$NameValueTable.putString(Settings.java:639)
at android.provider.Settings$System.putString(Settings.java:835)
at android.media.RingtoneManager.setActualDefaultRingtoneUri(RingtoneManager.java:656)
at jigsaw.avida.websampel.MynoheList$ViewHolder$4.onClick(MynoheList.java:196)
at android.view.View.performClick(View.java:3511)
at android.view.View$PerformClick.run(View.java:14105)
at android.os.Handler.handleCallback(Handler.java:605)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4424)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
at dalvik.system.NativeStart.main(Native Method)
channel '414f8c88 jigsaw.avida.websampel/jigsaw.avida.websampel.Activitymain (server)' ~ Channel is unrecoverably broken and will be disposed!
Received spurious receive callback for unknown input channel. fd=208, events=0x8

تو امولیتور اجرا کردم.این خطارو میده.

0 0
سلام عزیز صدایی که میخوای ست کنی واسه زنگ تو مسیر برنامت هست (همون مسیری که واسه خوندن فایل بهش دادی) (10 سال پیش)
0 0
نه.تو پوشه دانلودا هستش. (10 سال پیش)
0 0
از دوستان کسی نبود مارو راهنمایی کنه؟ (10 سال پیش)
+1 0
خطا میگه این مجوز رو میخوام که نداری com.android.providers.settings.SettingsProvider (10 سال پیش)
0 0
ممنون مجتبی جون.دقیقا همین الان تو stack فهمیدم باید این مجوزو بهش بدم:) (10 سال پیش)
0 0
این مجوزو میخواست. حالا تو گوشی سامسونگ دستور اجرا میشه و اهنگ تو لیست زنگ ها اظافه میشه ولی انتخابش گزینه بی صداس.قضیه چیه؟ (10 سال پیش)
پاسخ به سوال 
ATRAS  10 سال پیش
+2 0

 هر کاری کردم نتونستم بالا بنوسم.شرمنده.

 <uses-permission android:name="android.permission.WRITE_SETTINGS"/>

در آخر با این مجوز و اظافه کردن این تیکه از کد.برنامه به درستی کار کرد:)

 G.currentActivity.getContentResolver().delete(uri, MediaStore.MediaColumns.DATA + "=\"" + adres + "\"", null);
0 0
دستت درد نکنه کارمو راه انداختی با این پرمیشن و دست همتون بابت کدها درد نکنه (9 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .