farhad

توسعه دهنده اندروید
  • تعداد ارسال ها

    8
  • تاریخ عضویت

  • آخرین بازدید

اعتبار در انجمن

0 Neutral

درباره farhad

  • درجه
    Newbie
  1. دوست عزیز کد بذار! با حرف نیست که! احتمالاً منظورت ارسال از طریق intent هست که اون روش دو سه خط بیشتر نمی شه و کدش همه جا هست، من اینجا یه چیز کامل نوشتم که به درد همه بخوره
  2. این تابع برای ارسال sms: public void sendSMS(String phoneNumber, String message) { SmsManager smsManager = SmsManager.getDefault(); String SENT = "SMS_SENT"; String DELIVERED = "SMS_DELIVERED"; SmsManager sms = SmsManager.getDefault(); ArrayList parts = sms.divideMessage(message); int messageCount = parts.size(); Log.i("Message Count", "Message Count: " + messageCount); ArrayList deliveryIntents = new ArrayList(); ArrayList sentIntents = new ArrayList(); PendingIntent sentPI = PendingIntent.getBroadcast(this, 0, new Intent(SENT), 0); PendingIntent deliveredPI = PendingIntent.getBroadcast(this, 0, new Intent(DELIVERED), 0); for (int j = 0; j < messageCount; j++) { sentIntents.add(sentPI); deliveryIntents.add(deliveredPI); }registerReceiver(new BroadcastReceiver() { @Override public void onReceive(Context arg0, Intent arg1) { switch (getResultCode()) { case Activity.RESULT_OK: Toast.makeText(getBaseContext(), "SMS delivered", Toast.LENGTH_SHORT).show(); break; case Activity.RESULT_CANCELED: Toast.makeText(getBaseContext(), "SMS not delivered", Toast.LENGTH_SHORT).show(); break; } } }, new IntentFilter(DELIVERED));registerReceiver(new BroadcastReceiver() { @Override public void onReceive(Context arg0, Intent arg1) { if(getResultCode() == Activity.RESULT_OK) { Toast.makeText(A_RegistrationWays.this, "SMS SENT", Toast.LENGTH_LONG).show(); } else { App.MessageBox_Error(A_RegistrationWays.this, "SMS NOT SEND"); setContentView(R.layout.a_send_key_dialog); setUpContents(); } } }, new IntentFilter(SENT));smsManager.sendTextMessage(phoneNumber, null, message, sentPI, deliveredPI);} اینم تابع برای اینکه بفهمی دستگاه سیمکارت روش هست یا نه، چون اگه نباشه و از تابع ارسال استفاده کنی force close میده: public static boolean SimCardAvailability(Context context) { TelephonyManager telMgr = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); if (telMgr.getSimState() != TelephonyManager.SIM_STATE_ABSENT) { if(telMgr.getSimState() == TelephonyManager.SIM_STATE_READY) return true; } return false; } تو manifest هم این رو اضافه کن:
  3. سلام، من برای ارتباط با وب سرویس از ksoap2 استفاده می کنم، همه چی درست کار می کنه ولی وقتی برنامه رو ProGuard میکنم فقط envelope و response های تک متغیری کار می کنند و وقتی میخوام که چند متغیر رو envelope کنم تو response مشکل بوجود میاد و هیچی بر نمیگرده، مشکل هم از org.xmlPull.xmlpullParser هست که soap object رو وقتی proguard استفاده شده باشه باهاش مشکل داره، اینم تنظیمات ProGuard: [align=left]-optimizationpasses 5[/align] [align=left]-dontusemixedcaseclassnames[/align] [align=left]-dontskipnonpubliclibraryclasses[/align] [align=left]-dontpreverify[/align] [align=left]-verbose[/align] [align=left]-keep class org.kobjects.** { *; }[/align] [align=left]-keep class org.ksoap2.** { *; }[/align] [align=left]-keep class org.kxml2.** { *; }[/align] [align=left]-keep class org.xmlpull.** { *; }[/align] [align=left]-keep public class * extends android.app.Activity[/align] [align=left]-keep public class * extends android.app.Application[/align] [align=left]-keep public class * extends android.app.Service[/align] [align=left]-keep public class * extends android.content.BroadcastReceiver[/align] [align=left]-keep public class * extends android.content.ContentProvider[/align] [align=left]-keep public class * extends android.app.backup.BackupAgentHelper[/align] [align=left]-keep public class * extends android.preference.Preference[/align] [align=left]-keep public class com.android.vending.licensing.ILicensingService[/align] [align=left]-keepclasseswithmembernames class * {[/align] [align=left] native ;[/align] [align=left]}[/align] [align=left]-keepclasseswithmembers class * {[/align] [align=left] public (android.content.Context, android.util.AttributeSet);[/align] [align=left]}[/align] [align=left]-keepclasseswithmembers class * {[/align] [align=left] public (android.content.Context, android.util.AttributeSet, int);[/align] [align=left]}[/align] [align=left]-keepclassmembers class * extends android.app.Activity {[/align] [align=left] public void *(android.view.View);[/align] [align=left]}[/align] [align=left]-keepclassmembers enum * {[/align] [align=left] public static **[] values();[/align] [align=left] public static ** valueOf(java.lang.String);[/align] [align=left]}[/align] [align=left]-keep class * implements android.os.Parcelable {[/align] [align=left] public static final android.os.Parcelable$Creator *;[/align] [align=left]}[/align] [align=left]# Manfreds additions to default proguard file to get it to work for app[/align] [align=left]-ignorewarnings[/align] [align=left]-keep class com.google.inject.Binder[/align] [align=left]-keepclassmembers class * {[/align] [align=left] @com.google.inject.Inject (...);[/align] [align=left]}[/align] [align=left]-keep public class * extends android.view.View {[/align] [align=left] public (android.content.Context);[/align] [align=left] public (android.content.Context, android.util.AttributeSet);[/align] [align=left] public (android.content.Context, android.util.AttributeSet, int);[/align] [align=left] public void set*(...);[/align] [align=left]}[/align] [align=left]-keep class * implements android.os.Parcelable {[/align] [align=left] public static final android.os.Parcelable$Creator *;[/align] [align=left]}[/align] [align=left]-keep class roboguice.inject.ContextScope$WeakActiveStack {[/align] [align=left] ;[/align] [align=left]}[/align] [align=left]-keep class roboguice.** { *; }[/align] [align=left]-keep class com.google.inject.** { *; }[/align] [align=left]-keep class javax.inject.** { *; }[/align] [align=left]-keep class javax.annotation.** { *; }[/align] [align=left]-keep class com.google.** { *; }[/align] [align=left]-keep class **.Finalizer[/align] [align=left]-keepclassmembers class ** { *** startFinalizer( ... ); }[/align] [align=left]-keepclassmembers class * {[/align] [align=left] void *(**On*Event);[/align] [align=left]}[/align] [align=left]-keep class com.digikey.mobile.DigiKeyModule[/align] [align=left]-keepattributes **[/align] [align=left]-assumenosideeffects class android.util.Log {[/align] [align=left] public static int v(...);[/align] [align=left] public static int d(...);[/align] [align=left] public static int w(...);[/align] [align=left] public static int i(...);[/align] [align=left]}[/align] [align=left]-assumenosideeffects class roboguice.util.Ln {[/align] [align=left] public static int v(...);[/align] [align=left] public static int d(...);[/align] [align=left] public static int w(...);[/align] [align=left] public static int i(...);[/align] [align=left]}[/align] [align=left]-dontskipnonpubliclibraryclasses[/align] [align=left]-dontskipnonpubliclibraryclassmembers[/align] [align=left]-dontusemixedcaseclassnames[/align] [align=left]-renamesourcefileattribute SourceFile[/align] [align=left]-keepattributes SourceFile,LineNumberTable[/align] [align=left]-dontoptimize[/align] [align=left]-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*,!code/simplification/cast[/align] [align=left]-dontwarn android.support.**[/align] [align=left]-keepclassmembers class fqcn.of.javascript.interface.for.webview {[/align] [align=left] public *;[/align] [align=left]}[/align]
  4. خودم مشکل رو متوجه شدم، کتابخونه زبان فارسی رو درست ساپورت نمیکنه و تو load کردن pdfهای فارسی حجیم و همینطور عکس دار مشکل داره، هم زبونشو فارسی کردم هم تو decode اش حروف فارسی رو اضافه کردم، الآنم دارم رو زیاد کردن سرعت load و نشون دادن عکسهاش کار می کنم، کامل شد upload میکنم
  5. سلام من از این کتابخونه استفاده که می کنم، load شدن pdf هیچ وقت تموم نمیشه! فایلی که انتخاب کردم هم فقط 24 صفحه و بدون عکس هست، مشکل از منه یا کتابخونه؟!
  6. این کدی که به عنوان راه حل این دوستمون نوشته شده فقط اکتیویتی ای که داخلش هست رو می بنده و بقیه اکتیویتی ها باز می مونن، راهش همونیه که اینجا نوشتم: http://p30droid.com/Thread-%D8%AE%D8%B1%D9%88%D8%AC-%D8%A7%D8%B2-%D8%A7%D9%BE%D9%84%DB%8C%DA%A9%DB%8C%D8%B4%D9%86-%D8%AF%D8%B1-%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF?pid=2859#pid2859
  7. همون کد اولی که گفتم رو می نویسی، به جای MainActivity اسم اکتیویتی خودت رو می نویسی، بعد هم تو اون اکتیویتی دیگه بعد از super.onCreate ... کد شرطی ای که گفتم رو مینویسی دیگه!
  8. [shcode=java]Button Exit = (Button)findViewById(R.id.exit); Exit.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { Intent intent = new Intent(getApplicationContext(), MainActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); intent.putExtra("EXIT", true); startActivity(intent); } }); [/shcode] بعد در اکتیویتی اصلی، بعد از onCreat [shcode=java] if (getIntent().getBooleanExtra("EXIT", false)) { finish(); } [/shcode] توضیح: کد اول همه اکتیویتی ها فعال به غیر از MainActivity را میبندد، وقتی وارد MainActivity می شویم با کد دوم بررسی می شود که کاربر در خواست خروج دارد یا فقط MainActivity فراخوانی شده است.