View Full Version : تشخیص محل نصب برنامه ؟
hamedg1366
چهارشنبه 13 اسفند 1393, 19:32 عصر
با سلام و خسته نباشید
چطور تشخیص بدیم که برنامه توی حافظه گوشی نصب شده یا کارت حافظه ؟
با تشکر از دوستان عزیز
hamedg1366
چهارشنبه 13 اسفند 1393, 22:48 عصر
Up...
لطفا کمک کنید دوستان
hamedg1366
پنج شنبه 14 اسفند 1393, 09:42 صبح
Up...
:افسرده::افسرده:please help me
mnakhaeipoor
پنج شنبه 14 اسفند 1393, 14:49 عصر
با سلام و خسته نباشید
چطور تشخیص بدیم که برنامه توی حافظه گوشی نصب شده یا کارت حافظه ؟
با تشکر از دوستان عزیز
سلام با استفاده از کلاس PackageManager میتونید به اطلاعاتی نظیر آدرس جایی که اپلیکیشنتون نصب شده دست پیدا کنید
اینطوری :
PackageManager m = getPackageManager();
String s = getPackageName();
PackageInfo p = m.getPackageInfo(s,0);
s = p.applicationInfo.dataDir;
اگر هم احیانا اکلیپس خطای NameNotFoundException داد به جای کد بالا از پایینی استفاده کنید :
PackageManager m = getPackageManager();
String s = getPackageName();
try{
PackageInfo p = m.getPackageInfo(s,0);
s = p.applicationInfo.dataDir;
}catch(NameNotFoundException e){
Log.w("yourtag","Error Package name not found ", e);
}
بعد از این که مکان نصب اپلیکیشن به صورت یک رشته به دستتون رسید (مثلا اینجا رشته مدنظر تو متغیر s ذخیره میشه) به راحتی با یک if میتونید تعیین کنید تو sdcard نصب شده یا تو خود گوشی
موفق باشید...
hamedg1366
پنج شنبه 14 اسفند 1393, 15:40 عصر
با تشکر از شما جناب mnakhaeipoor (http://barnamenevis.org/member.php?299704-mnakhaeipoor) من کدهارو قاطی میبینم !
<font color="#2B91AF">PackageManager</font>...
میشه لطف کنین دوباره بذارین
hamedg1366
پنج شنبه 14 اسفند 1393, 15:44 عصر
با تشکر از شما دوست عزیز ؛
PackageManager m = getPackageManager();
String s = getPackageName();
try {
PackageInfo p = m.getPackageInfo(s, 0);
s = p.applicationInfo.dataDir;
} catch (NameNotFoundException e) {
Log.w("yourtag", "Error Package name not found ", e);
}
فقط همچنان من نمیدونم با چه شرطی باید بفهمم برنامه کجاست!
mnakhaeipoor
پنج شنبه 14 اسفند 1393, 20:18 عصر
با تشکر از شما دوست عزیز ؛
PackageManager m = getPackageManager();
String s = getPackageName();
try {
PackageInfo p = m.getPackageInfo(s, 0);
s = p.applicationInfo.dataDir;
} catch (NameNotFoundException e) {
Log.w("yourtag", "Error Package name not found ", e);
}
فقط همچنان من نمیدونم با چه شرطی باید بفهمم برنامه کجاست!
شما وقتی کدی که من گفتم رو مثلا تو emulator اجرا میکنید یه چنین رشته ای بر میگردونه : data/data/com.myPackName.myApp/
که در واقع میگه برنامتون تو پوشه data واقع در پوشه data نصب شده(توEmulator این شکلیه تو گوشی مسیرش فرق داره)
منظورم از if ساده این بود :
if(s.contains("/sdcard")){
//The App has installed in Your SDcard
}
else{
//The App has installed in Your Phone Memory
}
یعنی اگر تو رشته ی برگردونده شده از کدی که قبلا گفتم مسیر sdcard وجود داشت پس حتما تو sdcard نصب شده وگرنه تو گوشی نصب شده
مکان سومی که دیگه نداریم:شیطان:
hamedg1366
پنج شنبه 14 اسفند 1393, 21:51 عصر
دوست عزیز از شما خیلی ممنونم ، امیدوارم روزی بتونم جبران کنم
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.