PDA

View Full Version : استفاده از intent



e_q_sun
شنبه 10 تیر 1396, 19:00 عصر
دوستان سطح دسترسی از طریق intent چجوری میشه گرفت
من یه برنامه نوشتم که دسترسی ارسال مسیج میخواد
برنامه رو ارسال کردم واسه کافه بازار مبگه باید دسترسی رو از طریق intent بگیری
میشه راهنمایی کنید
ممنون

nice boy
شنبه 10 تیر 1396, 21:46 عصر
روش کلی استفاده از intent ها به شکل زیر هست. مثال زیر صفحه یک developer رو در کافه بازار نشون میده. حالا شما می تونید به جای command مثلا دستور مربوط به ارسال message رو قرار بدید
پیشنهاد می کنم اول درباره مفهوم intent در آندروید مطالعه کنید

procedure TBazaarAPI.GoDeveloperPage;
var
Intent: JIntent;
Command: string;
begin
try
Command := 'bazaar://collection?slug=by_author&aid=' + DeveloperID;
Intent := TJIntent.JavaClass.init(TJIntent.JavaClass.ACTION_ VIEW,
TJnet_Uri.JavaClass.parse(StringToJString(Command) ));
Intent.setPackage(StringToJString('com.farsitel.ba zaar'));
SharedActivity.startActivity(Intent);
except
on E: Exception do
begin
raise Exception.Create(E.Message);
end;
end;


end;

e_q_sun
یک شنبه 11 تیر 1396, 08:57 صبح
روش کلی استفاده از intent ها به شکل زیر هست. مثال زیر صفحه یک developer رو در کافه بازار نشون میده. حالا شما می تونید به جای command مثلا دستور مربوط به ارسال message رو قرار بدید
پیشنهاد می کنم اول درباره مفهوم intent در آندروید مطالعه کنید

procedure TBazaarAPI.GoDeveloperPage;
var
Intent: JIntent;
Command: string;
begin
try
Command := 'bazaar://collection?slug=by_author&aid=' + DeveloperID;
Intent := TJIntent.JavaClass.init(TJIntent.JavaClass.ACTION_ VIEW,
TJnet_Uri.JavaClass.parse(StringToJString(Command) ));
Intent.setPackage(StringToJString('com.farsitel.ba zaar'));
SharedActivity.startActivity(Intent);
except
on E: Exception do
begin
raise Exception.Create(E.Message);
end;
end;


end;
ممنون از پاسختون
در خوصوص intent من هرچی سرچ میکنم چیزی گیرم نمیاد که بدردم بخوره.
میشه راهنمایی کنید
اینطور که متوجه شدم (البته اگه درست فهمیده باشم)توی این کد از api کافه باز استفاده شده
خوب در صورتی که بخوام بدن ارتباط با کافه بازار از intent استفاده کنم چجوریه
در صورت امکان یه لینک مرجعی معرفی کنید که بتونم ازش آموزش بگیرم.ممنون میشم دوست گرامی

nice boy
یک شنبه 11 تیر 1396, 18:20 عصر
جهت ارسال sms می تونید از کد زیر استفاده کنید

uses Androidapi.JNI.GraphicsContentViewText
,Androidapi.JNI.Net, Androidapi.Helpers;


procedure TForm3.SendSMS(aMobile, aMessage: string);
var
Intent: JIntent;
Command: string;
begin
try
Command := 'smsto:' + aMobile;
Intent := TJIntent.JavaClass.init(TJIntent.JavaClass.ACTION_ VIEW,
TJnet_Uri.JavaClass.parse(StringToJString(Command) ));
Intent.putExtra(StringToJString('sms_body'), StringToJString(aMessage));
SharedActivity.startActivity(Intent);
except
on E: Exception do
begin
raise Exception.Create(E.Message);
end;
end;
end;


در کل زمانیکه شما می خواهید کاری رو در آندروید انجام بدید می تونید یا از داخل برنامه خودتون انجام بدید که احتیاج به Permission مربوطه دارید
یا این کار رو به یک برنامه دیگه بسپارید که این کار با استفاده از intent انجام میشه. یه چیزی مثل ShelExecute در ویندوز می مونه

nice boy
یک شنبه 11 تیر 1396, 18:22 عصر
کد باز کردن یک صفحه وب با intent

procedure TAndroidTools.OpenURL(aURL: string);const
MethodName = 'OpenURL';
var
Intent: JIntent;
Command: string;
begin
try
Intent := TJIntent.JavaClass.init(TJIntent.JavaClass.ACTION_ VIEW,
TJnet_Uri.JavaClass.parse(StringToJString(aURL)));
SharedActivity.startActivity(Intent);
except
on E: Exception do
begin
raise Exception.Create(E.Message);
end;
end;
end;

ابوالفضل عباسی
دوشنبه 12 تیر 1396, 10:02 صبح
دوست عزیز niceboy.
کد ارسال پیامک بود(به قرار زیر) چجوری میتونم delivery رو دریافت کنم؟
تا حالا این کار رو انجام دادی؟

procedure SendSMS_InApp (Target,TText:string);
var
smsTo: JString;
smsManager: JSmsManager;

begin

smsManager := TJSmsManager.JavaClass.getDefault;
smsTo := StringToJString(Target);
smsManager.sendTextMessage(smsTo, nil, StringToJString(TText), nil,JInt);

end;

برای دریافت Delivery جایی که من در فرمان sendText نوشته ام JInt.
این متغیر از نو JpendingIntent هست،حالا چجوری میتونم این رو بخونم برای اینکه یک پیامک ارسال شده یا نه؟

توی سایت stackoverflow سوالم رو مطرح کردم،جواب هم دادن ولی من متوجه نشدم.اگر شما تونسته اید ممنون میشم راهنمایی کنید.

e_q_sun
دوشنبه 12 تیر 1396, 11:14 صبح
دوست گرامی niceboy
من برای ارسال مسیج از کدی استفاده میکنم که جناب عباسی نوشتن
آیا برای intent حتما باید از کدی استفاده کنم که شما معرفی کردی یا از این هم میشه استفاده کرد؟؟

ابوالفضل عباسی
دوشنبه 12 تیر 1396, 11:48 صبح
فرق کد من با کد دوست عزیزم در اینکه:
کد من مستقیم ارسال میکنه اما delivery نداره.
کد niceboy از طریق massenger خود گوشی ارسال مبکنه و باید حتما دکمه Send رو بزنی و delivery داره.
یک بار هردو کد رو استفاده کن،تفاوتش رو متوجه میشی

nice boy
دوشنبه 12 تیر 1396, 17:37 عصر
دوست گرامی niceboy
من برای ارسال مسیج از کدی استفاده میکنم که جناب عباسی نوشتن
آیا برای intent حتما باید از کدی استفاده کنم که شما معرفی کردی یا از این هم میشه استفاده کرد؟؟
باید از کدی که من نوشتم استفاده کنید
شما در پست اول سوالی پرسیدی که جوابش استفاده از intent هست اگه از کدی که آقای عباسی گفتند استفاده کنی که باز مشکل permission خواهی داشت و بازار برنامه ات رو تایید نمی کنه

nice boy
دوشنبه 12 تیر 1396, 19:44 عصر
دوست عزیز niceboy.
کد ارسال پیامک بود(به قرار زیر) چجوری میتونم delivery رو دریافت کنم؟
تا حالا این کار رو انجام دادی؟

procedure SendSMS_InApp (Target,TText:string);
var
smsTo: JString;
smsManager: JSmsManager;

begin

smsManager := TJSmsManager.JavaClass.getDefault;
smsTo := StringToJString(Target);
smsManager.sendTextMessage(smsTo, nil, StringToJString(TText), nil,JInt);

end;

برای دریافت Delivery جایی که من در فرمان sendText نوشته ام JInt.
این متغیر از نو JpendingIntent هست،حالا چجوری میتونم این رو بخونم برای اینکه یک پیامک ارسال شده یا نه؟

توی سایت stackoverflow سوالم رو مطرح کردم،جواب هم دادن ولی من متوجه نشدم.اگر شما تونسته اید ممنون میشم راهنمایی کنید.
شما باید یک Listener تعریف تا وقتی Delivery اومد بتونی دریافت کنی
در لینک زیر با مثال توضیح داده، از این کد استفاده کن اگه سوالی داشتی در خدمتم
https://stackoverflow.com/questions/34898950/how-read-jpendingintent-in-delphi

ابوالفضل عباسی
سه شنبه 13 تیر 1396, 12:49 عصر
ممنون ولی
این لینکی که گذاشتی،سوال خودمه تو Stackoverflow.
ولی در پاسخ پایین که یه یونیت نوشته بود من نتونستم باز هم deliver رو دریافت کنم،کلی خطا داشت،رفع عیب هم کردم ولی جواب نداد.

خودت میتونی توضیح روان بدی؟یا مثال درست که کار کنه؟
چون یک پروژه بود خیلی وقته نوشته بودم ولی بدلیل عدم گرفتن deliver نتونستم کاملش کنم و همین طور داره خاک میخوره.
ممنون میشم کمکم کنی

e_q_sun
پنج شنبه 05 مرداد 1396, 13:26 عصر
با چه دستوری میتونم دسترسی مسیج رو از داخل برنامه بگیرم
کدهایی که معرفی شدن باعث میشه موقع ارسال مسیج صفحه مسیج باز بشه
من میخوام بعد از نصب،موقع اجرا دسترسی رو بگیره بعد بشه مسیج رو مستقیم ارسال کرد