pertican2010 20 ارسال شده در 4 اسفند، 2015 اشتراک گذاری ارسال شده در 4 اسفند، 2015 سلام به دوستان کدزیر تبدیلش به B4a چی میشه کسی می دونه؟ public static boolean sendSMS(Context ctx, int simID, String toNum, String centerNum, String smsText, PendingIntent sentIntent, PendingIntent deliveryIntent) { String name; try { name = "isms"; Method method = Class.forName("android.os.ServiceManager").getDeclaredMethod("getService", String.class); method.setAccessible(true); Object param = method.invoke(null, name); method = Class.forName("com.android.internal.telephony.ISms$Stub").getDeclaredMethod("asInterface", IBinder.class); method.setAccessible(true); Object stubObj = method.invoke(null, param); if (Build.VERSION.SDK_INT < 18) { method = stubObj.getClass().getMethod("sendText", String.class, String.class, String.class, PendingIntent.class, PendingIntent.class); method.invoke(stubObj, toNum, centerNum, smsText, sentIntent, deliveryIntent); } else { method = stubObj.getClass().getMethod("sendText", String.class, String.class, String.class, String.class, PendingIntent.class, PendingIntent.class); method.invoke(stubObj, ctx.getPackageName(), toNum, centerNum, smsText, sentIntent, deliveryIntent); } return true; } catch (ClassNotFoundException e) { Log.e("apipas", "ClassNotFoundException:" + e.getMessage()); } catch (NoSuchMethodException e) { Log.e("apipas", "NoSuchMethodException:" + e.getMessage()); } catch (InvocationTargetException e) { Log.e("apipas", "InvocationTargetException:" + e.getMessage()); } catch (IllegalAccessException e) { Log.e("apipas", "IllegalAccessException:" + e.getMessage()); } catch (Exception e) { Log.e("apipas", "Exception:" + e.getMessage()); } return false; } تا جایی که می دونم با باید از Reflector استفاده کرد http://www.b4x.com/android/help/reflection.html یه نمونه کد http://www.b4x.com/android/forum/threads/simulate-long-press-home-button-to-open-recent-apps.31066/ لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
pertican2010 20 ارسال شده در 12 اسفند، 2015 سازنده اشتراک گذاری ارسال شده در 12 اسفند، 2015 مشکل حل شد ممنون لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
pertican2010 20 ارسال شده در 10 اسفند، 2015 سازنده اشتراک گذاری ارسال شده در 10 اسفند، 2015 - لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
پژمان نیکروان 6,055 ارسال شده در 4 اسفند، 2015 اشتراک گذاری ارسال شده در 4 اسفند، 2015 سلام علیکم کتابخانه JavaObject و Reflection رو تیک بزنید. این کد رو به یه فضای خالی اضافه کنید بصورت جاوا: #if java import java.lang.reflect.Method; import android.content.Context; import android.app.PendingIntent; import android.os.IBinder; import android.os.Build; import android.util.Log; import java.lang.reflect.InvocationTargetException; public static boolean sendSMS(Context ctx, int simID, String toNum, String centerNum, String smsText, PendingIntent sentIntent, PendingIntent deliveryIntent) { String name; try { name = "isms"; Method method = Class.forName("android.os.ServiceManager").getDeclaredMethod("getService", String.class); method.setAccessible(true); Object param = method.invoke(null, name); method = Class.forName("com.android.internal.telephony.ISms$Stub").getDeclaredMethod("asInterface", IBinder.class); method.setAccessible(true); Object stubObj = method.invoke(null, param); if (Build.VERSION.SDK_INT < 18) { method = stubObj.getClass().getMethod("sendText", String.class, String.class, String.class, PendingIntent.class, PendingIntent.class); method.invoke(stubObj, toNum, centerNum, smsText, sentIntent, deliveryIntent); } else { method = stubObj.getClass().getMethod("sendText", String.class, String.class, String.class, String.class, PendingIntent.class, PendingIntent.class); method.invoke(stubObj, ctx.getPackageName(), toNum, centerNum, smsText, sentIntent, deliveryIntent); } return true; } catch (ClassNotFoundException e) { Log.e("apipas", "ClassNotFoundException:" + e.getMessage()); } catch (NoSuchMethodException e) { Log.e("apipas", "NoSuchMethodException:" + e.getMessage()); } catch (InvocationTargetException e) { Log.e("apipas", "InvocationTargetException:" + e.getMessage()); } catch (IllegalAccessException e) { Log.e("apipas", "IllegalAccessException:" + e.getMessage()); } catch (Exception e) { Log.e("apipas", "Exception:" + e.getMessage()); } return false; } #end if این کدجاوا شما یه تابع داره به نام sendSMS ، برای اجرا کردنش...: Dim j As JavaObject j.InitializeContext Dim ref As Reflector j.RunMethod("sendSMS",Array(ref.GetContext,"SimId","ToNum","CenterNum","SmsText","sentIntent","deliveryIntent")) پارامتر اولی که هیچی Context میخواست خودم دادم بهش ، اما بقیه پارامتر هارو مثل simId,ToNum و... همونطور که مشخص هست باید پرکنید. این تابع یک مقدار برگشتی Boolean هم برمیگردونه که برای گرفتش میتونید اینکارو بکنید: Dim j As JavaObject j.InitializeContext Dim ref As Reflector If j.RunMethod("sendSMS",Array(ref.GetContext,"SimId","ToNum","CenterNum","SmsText","sentIntent","deliveryIntent"))=True Then ToastMessageShow("مقدار true برگردانده شد",True) Else ToastMessageShow("مقدار False برگدانده شد",True) End If این از نحوه پیاده سازش تو بیسیک. اینکه کار بکنه یا نه بستگی به کد جاوا داره... درضن اینطور که پیداست ممکنه به دسترسی های خاصی هم نیاز داشته باشه. لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
pertican2010 20 ارسال شده در 4 اسفند، 2015 سازنده اشتراک گذاری ارسال شده در 4 اسفند، 2015 - لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
پژمان نیکروان 6,055 ارسال شده در 4 اسفند، 2015 اشتراک گذاری ارسال شده در 4 اسفند، 2015 مقدار فالس برگردونده شد یعنی مشکل داره و ارسال نشد دیگه.... اگه از ورودی ها مطمئن نیستید جایی که این کد رو پیدا کردید شاید یه مثالی زده باشه واسش. درضمن چرا میخواین ازکد جاوا برای ارسال اس ام اس استفاده کنید؟؟ این تاپیکو ببینید با reflection ارسال پیامک انجام میشه شاید بدردتون بخوره... http://answercenter.ir/topic/3702-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%A7%D8%B1%D8%B3%D8%A7%D9%84-%D9%BE%DB%8C%D8%A7%D9%85%DA%A9-%D8%B7%D9%88%D9%84%D8%A7%D9%86%DB%8C/ لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
سوال
pertican2010 20
سلام به دوستان
کدزیر تبدیلش به B4a چی میشه کسی می دونه؟
public static boolean sendSMS(Context ctx, int simID, String toNum, String centerNum, String smsText, PendingIntent sentIntent, PendingIntent deliveryIntent) { String name; try { name = "isms"; Method method = Class.forName("android.os.ServiceManager").getDeclaredMethod("getService", String.class); method.setAccessible(true); Object param = method.invoke(null, name); method = Class.forName("com.android.internal.telephony.ISms$Stub").getDeclaredMethod("asInterface", IBinder.class); method.setAccessible(true); Object stubObj = method.invoke(null, param); if (Build.VERSION.SDK_INT < 18) { method = stubObj.getClass().getMethod("sendText", String.class, String.class, String.class, PendingIntent.class, PendingIntent.class); method.invoke(stubObj, toNum, centerNum, smsText, sentIntent, deliveryIntent); } else { method = stubObj.getClass().getMethod("sendText", String.class, String.class, String.class, String.class, PendingIntent.class, PendingIntent.class); method.invoke(stubObj, ctx.getPackageName(), toNum, centerNum, smsText, sentIntent, deliveryIntent); } return true; } catch (ClassNotFoundException e) { Log.e("apipas", "ClassNotFoundException:" + e.getMessage()); } catch (NoSuchMethodException e) { Log.e("apipas", "NoSuchMethodException:" + e.getMessage()); } catch (InvocationTargetException e) { Log.e("apipas", "InvocationTargetException:" + e.getMessage()); } catch (IllegalAccessException e) { Log.e("apipas", "IllegalAccessException:" + e.getMessage()); } catch (Exception e) { Log.e("apipas", "Exception:" + e.getMessage()); } return false; }تا جایی که می دونم با باید از Reflector استفاده کرد
http://www.b4x.com/android/help/reflection.html
یه نمونه کد
http://www.b4x.com/android/forum/threads/simulate-long-press-home-button-to-open-recent-apps.31066/
لینک ارسال
به اشتراک گذاری در سایت های دیگر
5 پاسخ به این سوال تاکنون داده شده است
ارسالهای توصیه شده
بایگانی شده
این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.