بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
انجام ندادن هیچ عملی ( Push Notofocation )
سلام
من میخوام وقتی یک چیزی از سرور دریافت شد اون رو توست کنه
ولی فقط کد لاگ عمل میکنه
اینم سورس
C2DService service = new C2DService().interval(1000)
.key("valid")
.network(AdService.NETWORK_ALWAYS)
.url("http://192.168.1.102/myad/service.php")
.listener(new AdService.Listener() {
@Override
public void onDataReceive(String data) {
// اینجا
}
}).start();
}
خیلی عجیبه
0
0
کسی نظری نداره؟ واجبه (11 سال پیش)
0
0
خواهشا کمک کنید , خیلی نیاز دارم (11 سال پیش)
0
0
کد استاد هم همینطور بود , چیزی به این عجیبی ندیده بودم , فقط کد لاگ اجرا میشه , بقیه نه (11 سال پیش)
0
0
:| (11 سال پیش)
0
0
خب شما که کد مربوط به توست رو اینجا ننوشتی !!!
اگر نوشتی نیگاه کن ببین آخرش .show() داره یا نه (11 سال پیش)
0
0
من میگم هیچ کدی , شما رو مال استاد تست کنید (11 سال پیش)
0
0
من شبیه به همین کد رو نوشتم و مشکلی نداره ، شما کدتون رو کامل بنویسید من متوجه منظورتون نمیشم (11 سال پیش)
0
0
اگر log بشه یعنی اطلاعات دریافت شده ، پس هرکاریش میشه کرد و فرقی نمیکنه . کدتون رو کامل بزارید. (11 سال پیش)
0
0
اقا پروژه استاد رو بیارید , به جای لاگ , توست بزارید , ببینید نمایش میده یا نه (11 سال پیش)
0
0
ممنون میشم (11 سال پیش)
0
0
آمن تست کردم مشکلی نداره شما کد خودت رو همینجا بیار بنویس . (11 سال پیش)
0
0
یعنی توست رو نشون میده؟ من از خود پروژه استاد استفاده میکنم , کدش رو تغییر ندادم , شما بی زحمت پروژتون رو ارسال میکنید من تست کنم؟ (11 سال پیش)
+1
0
اینجا رو ببینید احتمالا کمکتون میکنه : لینک (11 سال پیش)
برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال
Pr0gramm3r
11 سال پیش
0
0
اقا اینم کد
package com.uncocoder.course.app.push_notification;
import android.app.Activity;
import android.os.Bundle;
public class ActivityStartup extends Activity {
public C2D service;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
startPushNotification();
}
private void startPushNotification() {
service = new C2D()
.key("validKey")
.url("http://192.168.1.102/myad/service.php")
.interval(1000)
.network(C2D.NETWORK_ALWAYS)
.listener(new C2D.Listener() {
@Override
public void onDataReceive(String data) {
// Log.d("LOG", data);
}
}).start();
}
}
C2D
package com.uncocoder.course.app.push_notification;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.params.BasicHttpParams;
import org.apache.http.params.HttpConnectionParams;
import org.apache.http.params.HttpParams;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
public class C2D {
public static final int PROTOCOL_EXCEPTION = -1;
public static final int IO_EXCEPTION = -2;
public static final int UNKNOWN_EXCEPTION = -3;
public static final int NETWORK_ALWAYS = 1;
public static final int NETWORK_JUST_WIFI = 2;
public static interface Listener {
public void onDataReceive(String data);
}
private Listener listener;
private String key;
private long interval;
private int network;
private String url;
private ArrayList<NameValuePair> inputArguments = new ArrayList<NameValuePair>();
private boolean enable = true;
public C2D listener(Listener value) {
listener = value;
return this;
}
public C2D interval(long value) {
interval = value;
return this;
}
public C2D network(int value) {
network = value;
return this;
}
public C2D url(String value) {
url = value;
return this;
}
public C2D key(String value) {
key = value;
return this;
}
public void disable() {
enable = false;
}
public void enable() {
if (enable) {
return;
}
enable = true;
start();
}
public C2D start() {
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
while (enable) {
try {
check();
Thread.sleep(interval);
}
catch (InterruptedException e) {
e.printStackTrace();
}
}
}
});
thread.start();
return this;
}
public void check() {
int status = readNetworkStatus();
if (status == DISCONNECTED) {
return;
}
if (network == NETWORK_JUST_WIFI && status == MOBILE) {
return;
}
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
try {
HttpParams params = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(params, 1000);
HttpConnectionParams.setSoTimeout(params, 1000);
HttpClient client = new DefaultHttpClient(params);
HttpPost request = new HttpPost(url);
inputArguments.clear();
inputArguments.add(new BasicNameValuePair("key", key));
request.setEntity(new UrlEncodedFormEntity(inputArguments));
HttpResponse httpResponse = (HttpResponse) client.execute(request);
String data = streamToString(httpResponse.getEntity().getContent());
if (listener != null) {
listener.onDataReceive(data);
return;
}
}
catch (ClientProtocolException e) {}
catch (IOException e) {}
catch (Exception e) {}
}
});
thread.start();
}
private String streamToString(InputStream inputStream) {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
StringBuilder stringBuffer = new StringBuilder();
String line = null;
try {
while ((line = bufferedReader.readLine()) != null) {
stringBuffer.append((line + "\n"));
}
}
catch (IOException e) {
e.printStackTrace();
} finally {
try {
inputStream.close();
}
catch (IOException e) {
e.printStackTrace();
}
}
return stringBuffer.toString();
}
private static final int DISCONNECTED = 0;
private static final int WIFI = 1;
private static final int MOBILE = 2;
private int readNetworkStatus() {
ConnectivityManager connectivityManager = (ConnectivityManager) G.context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
boolean isConnected = networkInfo.isConnected();
if (isConnected) {
int networkType = networkInfo.getType();
if (networkType == ConnectivityManager.TYPE_WIFI) {
return WIFI;
} else if (networkType == ConnectivityManager.TYPE_MOBILE) {
return MOBILE;
}
}
return DISCONNECTED;
}
}
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .