انجمن سایت کلیدستان



این کد چه اشتباهی در آدرس دهی یه آهنگ بعنوان زنگ موبایل داره ؟زمان کنونی: ۱۳۹۵/۰۹/۲۱، ۱۲:۲۹ ب.ظ
کاربران در حال بازدید این موضوع: 1 مهمان
نویسنده: moralschool
آخرین ارسال: admin
پاسخ 14
بازدید 4703

رتبه موضوع:
  • 2 رای - 4.5 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
این کد چه اشتباهی در آدرس دهی یه آهنگ بعنوان زنگ موبایل داره ؟

این کد چه اشتباهی در آدرس دهی یه آهنگ بعنوان زنگ موبایل داره ؟

#1
کدی که در دکمه برای تعیین آهنگ به عنوان زنگ گوشی استفاده کردم اینه :

کد پی‌اچ‌پی:
ImageView zang1 = (ImageViewfindViewById(R.id.imageView7);
zang1.setOnClickListener(new OnClickListener() {
                 
                @
Override
                
public void onClick(View arg0) {
                                         
                
saveas1(RingtoneManager.TYPE_RINGTONE);
 
                  }
            }); 


برای آدرس دهی از پوشه raw کدهام اینه که بخوبی جواب میده :

کد پی‌اچ‌پی:
public boolean saveas15(int type) {
            
byte[] buffer null;
            
InputStream fIn getBaseContext().getResources().openRawResource(
                    
R.raw.zang1);
            
int size 0;
 
            try {
                
size fIn.available();
                
buffer = new byte[size];
                
fIn.read(buffer);
                
fIn.close();
            } catch (
IOException e) {
                return 
false;
            }
 
            
String path Environment.getExternalStorageDirectory().getPath(  )
                    + 
"/media/audio/ringtones/";
 
            
String filename "zang1.mp3";
 
            
boolean exists = (new File(path)).exists();
            if (!
exists) {
                new 
File(path).mkdirs();
            }
 
            
FileOutputStream save;
            try {
                
save = new FileOutputStream(path filename);
                
save.write(buffer);
                
save.flush();
                
save.close();
            } catch (
FileNotFoundException e) {
                return 
false;
            } catch (
IOException e) {
                return 
false;
            }
 
            
sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE,
                    
Uri.parse("file://" path filename)));
 
            
File k = new File(pathfilename);
 
            
ContentValues values = new ContentValues();
            
values.put(MediaStore.MediaColumns.DATAk.getAbsolutePath());
            
values.put(MediaStore.MediaColumns.TITLEfilename);
            
values.put(MediaStore.MediaColumns.MIME_TYPE"audio/mp3");
 
            
// This method allows to change Notification and Alarm tone also. Just
            // pass corresponding type as parameter
            
if (RingtoneManager.TYPE_RINGTONE == type) {
                
values.put(MediaStore.Audio.Media.IS_RINGTONEtrue);
            } else if (
RingtoneManager.TYPE_NOTIFICATION == type) {
                
values.put(MediaStore.Audio.Media.IS_NOTIFICATIONtrue);
            } else if (
RingtoneManager.TYPE_ALARM == type) {
                
values.put(MediaStore.Audio.Media.IS_ALARMtrue);
            }
 
            
Uri uri MediaStore.Audio.Media.getContentUriForPath(k
                    
.getAbsolutePath());
            
Uri newUri Zang.this.getContentResolver().insert(urivalues);
            
RingtoneManager.setActualDefaultRingtoneUri(Zang.t  histype,
                    
newUri);
 
            
// Insert it into the database
            
this.getContentResolver()
                    .
insert(MediaStore.Audio.Media.getContentUriForPat  h(k
                            
.getAbsolutePath()), values);
 
            return 
true;
        } 

حالا میخوام بدونم اگه بخوام بجای آدرس دهی raw از یه پوشه که در sdcard هست مسیر رو تعیین کنم چیکار کنم ؟
 
پاسخ

این کد چه اشتباهی در آدرس دهی یه آهنگ بعنوان زنگ موبایل داره ؟

#2
سلام.
با توجه به پرسش شما، کلید زیر را نوشتم :

http://www.kelidestan.com/keys/keys.php?key=850


 
bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط moralschool

این کد چه اشتباهی در آدرس دهی یه آهنگ بعنوان زنگ موبایل داره ؟

#3
واقعا کلیدهاتون راه گشا هستند و آموزنده ...
خیلی ممنونم ...

فقط مشکلی که هست اینه که وقتی از توی برنامه چند بار یه آهنگ رو به عنوان رینگتون تعیین میکنم ، اون آهنگ چند بار در قسمت زنگ های موبایل اضافه میشه !
یعنی وقتی بریم توی تنظیمات گوشی و قسمت زنگ های موبایل ، اون نامی رو که ما تعیین کردیم چون چند بار از طریق برناممون به عنوان زنگ انتخاب میشده ، حالا اونجا هم چند بار نشون داده میشه و این باعث میشه که اگه مثلا کاربر 100 بار روی دکمه انتخاب به عنوان زنگ گوشی کلیک کنه ، اون زنگ هم 100 بار در لیست زنگ های گوشی نمایش داده میشه !
آیا راهی برای حل این مشکل هست ؟

2- من برای اینکه صدای آهنگ پیامک ها و زنگ هشدار رو تغییر بدم بجای کد زیر :

کد پی‌اچ‌پی:
RingtoneManager.TYPE_RINGTONE 

از این کدها استفاده کردم :

کد پی‌اچ‌پی:
RingtoneManager.TYPE_NOTIFICATION,

و

RingtoneManager
.TYPE_ALARM

و البته از قسمت values هم اونها رو true میکنم ...
ولی وقتی روی گوشیم تست میکنم اجرا نمیشه و همون آهنگ قبلی گوشی پخش میشه !

علتش چیه ؟
ممنون
پاسخ
 سپاس شده توسط admin

این کد چه اشتباهی در آدرس دهی یه آهنگ بعنوان زنگ موبایل داره ؟

#4
وقتی فایلی رو مثلا با بلوتوث دریافت میکنم و در نوتیفیکیشن نشون میده آهنگی که گذاشتم پخش میشه ولی زمانی که پیامک میاد نه !

آلارم هم همینطور
 
پاسخ

این کد چه اشتباهی در آدرس دهی یه آهنگ بعنوان زنگ موبایل داره ؟

#5
(۱۳۹۳/۰۲/۱۳, ۰۵:۰۲ ب.ظ)'moralschool' نوشته: فقط مشکلی که هست اینه که وقتی از توی برنامه چند بار یه آهنگ رو به عنوان رینگتون تعیین میکنم ، اون آهنگ چند بار در قسمت زنگ های موبایل اضافه میشه !
یعنی وقتی بریم توی تنظیمات گوشی و قسمت زنگ های موبایل ، اون نامی رو که ما تعیین کردیم چون چند بار از طریق برناممون به عنوان زنگ انتخاب میشده ، حالا اونجا هم چند بار نشون داده میشه و این باعث میشه که اگه مثلا کاربر 100 بار روی دکمه انتخاب به عنوان زنگ گوشی کلیک کنه ، اون زنگ هم 100 بار در لیست زنگ های گوشی نمایش داده میشه !
آیا راهی برای حل این مشکل هست ؟

 

ممنون از تذکرتون، به ادامه همان کلید، یک قسمت با عنوان ((نکته مهم)) اضافه کردم که در همین زمینه و برای رفع این مشکل می باشد، آن کلید را دوباره بخوانید :

http://www.kelidestan.com/keys/keys.php?key=850

یک کلید دیگر نیز به طور اختصاصی در زمینه حذف یک زنگ از لیست زنگ های گوشی اندروید نوشتم (البته خواندن همان کلید قبلی برایتان کافی است) :

http://www.kelidestan.com/keys/keys.php?key=854

موارد دیگری را که گفتید بررسی می کنم، اگر به نتیجه رسیدم، پاسخ را همینجا خواهم نوشت.
bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط moralschool

این کد چه اشتباهی در آدرس دهی یه آهنگ بعنوان زنگ موبایل داره ؟

#6
ممنون
برای موارد دیگه خیلی در سایتهای مختلف گشتم همشون از همین روش استفاده کردن ولی نمیدونم چرا صدای مسیج و یا آلارم تغییر نمیکنه !
در هر صورت ممنون از کلیدهایی که برای رفع مشکلات قرار می دهید .
پاسخ
 سپاس شده توسط admin

این کد چه اشتباهی در آدرس دهی یه آهنگ بعنوان زنگ موبایل داره ؟

#7
کد رو تست کردم این مشکل اضافه کردن تکراری زنگ در قسمت زنگ های گوشی حل شده ولی یه مشکل دیگه فکر کنم پیش میاد !
برنامه ای که من دارم روش کار میکنم سه تا دکمه داره که یکیش برای تعیین بعنوان زنگ موبایل ، یکی برای زنگ پیامک و یکی برای آلارم هست
حالا وقتی هر کدوم رو انتخاب میکنم می بینم که زنگ دوتای دیگه بر میگرده به زنگ پیشفرض گوشی !
در صورتی که باید اگه هر سه دکمه انتخاب بشن ، هر سه تا در قسمت تنظیمات اعمال بشه ولی الان اینجوری نیست و با انتخاب هر دکمه زنگ مورد نظر اعمال میشه ولی زنگ دوتای دیگه به پیشفرض بر میگرده
در کدهای قبلی این مشکل بوجود نمیومد فکر کنم بخاطر کد حذف باشه درسته ؟
پاسخ

این کد چه اشتباهی در آدرس دهی یه آهنگ بعنوان زنگ موبایل داره ؟

#8
از دوستان کسی فرصت کرد مشکلی رو که در بالا گفتم چک کنه ؟
 
پاسخ

این کد چه اشتباهی در آدرس دهی یه آهنگ بعنوان زنگ موبایل داره ؟

#9
آقای گلمکانی مطمئنم مشکل از کدی هست که برای حذف عنوان کردید ، اگه میشه لطفا بررسیش کنید دوباره
این باعث میشه که وقتی روی دکمه های دیگه کلیک میکنم زنگی که قبلا مثلا برای پیامک تعیین کردم به زنگ پیش فرض گوشی برگرده
پاسخ

این کد چه اشتباهی در آدرس دهی یه آهنگ بعنوان زنگ موبایل داره ؟

#10
(۱۳۹۳/۰۲/۱۶, ۱۲:۴۷ ب.ظ)'moralschool' نوشته: کد رو تست کردم این مشکل اضافه کردن تکراری زنگ در قسمت زنگ های گوشی حل شده ولی یه مشکل دیگه فکر کنم پیش میاد !
برنامه ای که من دارم روش کار میکنم سه تا دکمه داره که یکیش برای تعیین بعنوان زنگ موبایل ، یکی برای زنگ پیامک و یکی برای آلارم هست
حالا وقتی هر کدوم رو انتخاب میکنم می بینم که زنگ دوتای دیگه بر میگرده به زنگ پیشفرض گوشی !
در صورتی که باید اگه هر سه دکمه انتخاب بشن ، هر سه تا در قسمت تنظیمات اعمال بشه ولی الان اینجوری نیست و با انتخاب هر دکمه زنگ مورد نظر اعمال میشه ولی زنگ دوتای دیگه به پیشفرض بر میگرده
در کدهای قبلی این مشکل بوجود نمیومد فکر کنم بخاطر کد حذف باشه درسته ؟
 

آن روش، به تنهایی مشکلی ندارد، یعنی اگر تنها برای زنگ گوشی (Ringtone) به کار رود، مواردی مثل زنگ پیامک (Message) را تغییر نمی دهد (امتحان کردم و مشکلی نداشت). اما در موردی که شما گفتید، چون آن را برای  زنگ پیامک (Message) و زنگ های دیگری نیز به کار می برید، هنگامی که از دستور زیر استفاده می کنیم، خود به خود، آن موارد نیز حذف می شود (چون مسیر فایل مربوط به همه آن زنگ ها، یکسان است) :

کد:
Uri uri = MediaStore.Audio.Media.getContentUriForPath(k.getAbsolutePath());
getContentResolver().delete(uri, MediaStore.MediaColumns.DATA + "=\"" + k.getAbsolutePath() + "\"", null);

خوب من برای رفع این مشکل، کمی در اینترنت جستجو کردم، اما کد مفیدی پیدا نکردم که سرنخی برای راه حل بدهد. 
شاید راه حل این باشد که مثلا برای زنگ گوشی، زنگ پیامک و زنگ آلارم، سه فایل مختلف از آهنگ مورد نظر در حافظه خارجی (External Storage) بسازیم و برای هر زنگ، یکی از آنها را به کار ببریم و بنابراین چون مسیرها متفاوت است، با حذف یکی، دو تای دیگر حذف نمی شوند. مثلا سه مسیر زیر :

کد:
/MyApp/Ringtone.mp3
/MyApp/Message.mp3
/MyApp/Alarm.mp3

فرض کنیم برنامه شما دارای 50 آهنگ است، به محض اینکه کاربر یک آهنگ را برای زنگ گوشی انتخاب می کند، فایل Ringtone.mp3 را، اگر وجود دارد، حذف کرده و فایل جدید را به جای آن کپی می کنید و کدها را برای تعیین آن به عنوان زنگ گوشی جدید اجرا می کنید (برای پیامک و آلارم نیز به طور مشابه). البته اگر قبلا مسیر آن فایل به عنوان زنگ گوشی تعیین شده باشد، حدس می زنم دیگر نیازی به اجرای کدهای تعیین زنگ نباشد و تنها کپی کردن فایل کافی باشد (مگر اینکه بخواهید عنوان آهنگ و نام سازنده آن را تغییر بدهید).
این موارد را شخصا امتحان نکرده ام و بنابراین باید کدنویسی آن را انجام بدهید و ببینید که روش مناسبی است یا خیر. در ضمن، بد نیست قبل از آن، کمی در اینترنت نیز جستجو کنید.

bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط moralschool

این کد چه اشتباهی در آدرس دهی یه آهنگ بعنوان زنگ موبایل داره ؟

#11
بازم ممنون از وقتی که گذاشتید و پاسخ دادید
در مورد حل این مشکلات باور کنید بسیار در اینترنت و سایتهای خارجی و انجمن های ایرانی جستجو کردم و کدهای مختلفی رو دیدم و امتحان کردم ولی هیچکدوم مشکل رو حل نکرد
چندین برنامه رینگتون هم نصب کردم اونا هم همین مشکل رو داشتن مثلا زنگ آلارم رو برای من تغییر نمیدادن که نتیجه گرفتم ممکنه اشکال از گوشی من باشه کما اینکه برای پیامک اشکال از گوشی خودم بود و رفع شد
اما در مورد کد ها قسمتی رو که فایل رو اول حذف میکرد ، برداشتم ولی بجاش یه دکمه اضافه کردم که با کلیک کاربر اون فایل رو حذف میکنه یعنی دیگه نیازی نیست که فایل 3 بار با سه نام متفاوت کپی بشه ولی خب اگه کاربر چند بار کلیک کنه چند بار هم در لیست اضافه میشه ! اما با یه بار زدم روی دکمه حذف ، همه اونها حذف میشه . هر چند که روش خیلی خوبی هم نیست ولی با توجه به اینکه کاربر هم ممکنه چند بار روی دکمه ها کلیک نکنه ، فعلا به این شکل عمل کردم
در هر صورت خیلی خیلی ممنونم
پاسخ

این کد چه اشتباهی در آدرس دهی یه آهنگ بعنوان زنگ موبایل داره ؟

#12
(۱۳۹۳/۰۷/۱۹, ۰۶:۵۶ ب.ظ)'mpamoradi' نوشته: اگه بخوام فایلی که توی فولدر raw پروژه ام گذاشتم به عنوان زنگ موبایل یا اس ام اس انتخاب بشه باید چی کار کنم؟
 

سلام.
شما ابتدا باید فایل مربوط به آهنگ رو در حافظه خارجی ( External Storage ) کپی کنید.  برای کپی کردن یک فایل از پوشه raw از برنامه اندروید به درون حافظه خارجی ( External Storage )، کلید زیر را بخوانید :

http://www.kelidestan.com/keys/keys.php?key=848

سپس کدهایی برای تعیین آن به عنوان زنگ گوشی (Ringtone) را باید اجرا کنید که در کلید زیر شرح داده شده اند :

http://www.kelidestan.com/keys/keys.php?key=850

bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط mpamoradi

این کد چه اشتباهی در آدرس دهی یه آهنگ بعنوان زنگ موبایل داره ؟

#13
سپاس گذارم
من میخوام فایلهای فولدر raw توی مسیر android/data/com.etc.myproject/musicfolder ذخیره بشه و از اونجا به عنوان زنگ تماس یا هشدار یا اس ام اس انتخاب بشه
پاسخ
 سپاس شده توسط admin

این کد چه اشتباهی در آدرس دهی یه آهنگ بعنوان زنگ موبایل داره ؟

#14
(۱۳۹۳/۰۷/۲۰, ۱۲:۱۱ ب.ظ)'mpamoradi' نوشته: سپاس گذارم
من میخوام فایلهای فولدر raw توی مسیر android/data/com.etc.myproject/musicfolder ذخیره بشه و از اونجا به عنوان زنگ تماس یا هشدار یا اس ام اس انتخاب بشه
 

از همان نکاتی که ذکر کردم باید استفاده کنید، فقط اگر قصد دارید فایل ها در مسیری از حافظه خارجی (External Storage) کپی شوند که پوشه های (Folder) آن مسیر وجود ندارند، باید حتما ابتدا پوشه ها را بسازید. البته این مورد در همان مبحث مربوط به کپی کردن فایل از پوشه raw به درون حافظه خارجی وجود داشت، اما یک مبحث جداگانه نیز در مورد آن نوشته ایم :

http://www.kelidestan.com/keys/keys.php?key=280

bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان

آخرین کلیدهای غیررایگان

شما هم می توانید کلیدهای غیررایگان منتشر کنید (بیشتر بدانید)