pertican2010 20 ارسال شده در 13 آذر، ۱۳۹۴ اشتراک گذاری ارسال شده در 13 آذر، ۱۳۹۴ سلام به دوستان کدزیر تبدیلش به 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 ارسال شده در 21 آذر، ۱۳۹۴ سازنده اشتراک گذاری ارسال شده در 21 آذر، ۱۳۹۴ مشکل حل شد ممنون لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
pertican2010 20 ارسال شده در 19 آذر، ۱۳۹۴ سازنده اشتراک گذاری ارسال شده در 19 آذر، ۱۳۹۴ - لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
پژمان نیکروان 6,055 ارسال شده در 13 آذر، ۱۳۹۴ اشتراک گذاری ارسال شده در 13 آذر، ۱۳۹۴ سلام علیکم کتابخانه 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 ارسال شده در 13 آذر، ۱۳۹۴ سازنده اشتراک گذاری ارسال شده در 13 آذر، ۱۳۹۴ - لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
پژمان نیکروان 6,055 ارسال شده در 14 آذر، ۱۳۹۴ اشتراک گذاری ارسال شده در 14 آذر، ۱۳۹۴ مقدار فالس برگردونده شد یعنی مشکل داره و ارسال نشد دیگه.... اگه از ورودی ها مطمئن نیستید جایی که این کد رو پیدا کردید شاید یه مثالی زده باشه واسش. درضمن چرا میخواین ازکد جاوا برای ارسال اس ام اس استفاده کنید؟؟ این تاپیکو ببینید با 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 چی میشه کسی می دونه؟
تا جایی که می دونم با باید از 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 پاسخ به این سوال تاکنون داده شده است
ارسالهای توصیه شده
بایگانی شده
این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.