Showing posts with label Android. Show all posts
Showing posts with label Android. Show all posts

10/09/2012

Android : Google Cloud Messaging & PHP ашигласан жишээ

Google Cloud Messaging service -г PHP-тэй хамт ашигласан жишээ мартахаасаа өмнө тэмдэглье гэж бодлоо.
<<<<<<<<<<<<<<<< клиент арр >>>>>>>>>
1-рт
Юуны өмнө Google APIs Console хуудасруу хандаж бүртгүүлээд дараах үйлдлүүдийг хийнэ.
1. Sender ID //бүртгэл хийгдсэнээр идвэхжинэ.
2. API key //бүртгэл хийгдсэнээр идвэхжинэ.
3. Google Cloud Messaging service-г ON болгон тохируулаарай.
Google APIs Console page

2-рт GCM.jar файл нэмэх
Дээрх алхамыг хийж дууссан бол өөрийн үүсгэсэн прожект доо gcm.jar файлыг нэмнэ.
gcm.jar файл нь дараах дир-т байрлана.
YOUR_SDK_ROOT/extras/google/gcm-client/dist

3-рт Manifest файлыг засварлах
//SDK тохируулга

(GCM SDK 8-р хувилбараас эхлэн ашиглах боломжтой.)


 


(my_app_package-өөрийн package нэрийг оруулаарай.)

application-таг дотор доорх тохиргоог нэмээрэй.

4-рт GCMIntentService класс үүсгэх.
package my_app_package;

import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.os.Message;
import android.util.Log;

import com.google.android.gcm.GCMBaseIntentService;

public class GCMIntentService extends GCMBaseIntentService {
 
    public GCMIntentService() {
        super("SENDER_ID");
    }

    @Override
    public void onRegistered(Context context, String registrationId) {
        Log.w("registration id:", registrationId);
        sendMessage("id:" + registrationId);
    }
 
    @Override
    protected void onUnregistered(Context context, String registrationId) {
        sendMessage("C2DM Unregistered");
    }
 
    @Override
    public void onError(Context context, String errorId) {
        sendMessage("err:" + errorId);
    }
 
    @Override
    protected void onMessage(Context context, Intent intent) {
        String str = intent.getStringExtra("message");
        Log.w("message:", str);
    }
}

5-рт onCreat хэсэгт доорх кодыг нэмэх
GCMRegistrar.checkDevice(this);
GCMRegistrar.checkManifest(this);
final String regId = GCMRegistrar.getRegistrationId(this);
if (regId.equals("")) {
  GCMRegistrar.register(this, "SENDER_ID");
} else {
  Log.v(TAG, "Already registered");
}

<<<<<<<<<<<<<<<< сервер арр >>>>>>>>>
Текст илгээх
 $registration_id,
  'collapse_key' => 'update',
  'data.message' => $message,
);
$post = http_build_query($post_list, '&');

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
$ret = curl_exec($ch);
 
var_dump($ret);

?>
Continue Reading...

7/12/2012

Android : Add View to a Fragment Dynamically

Android app бичиж байх үед Fragment ашиглах явдал их байдаг ба тухайн Fragment хэлбэрээр ашиглаж буй классад динамикаар компонент нэмэх талаар тэмдэглэл оруулъя гэж бодлоо.
Дараах 3н файлыг ашиглаж байгаа гэж үзвэл.
1.Fragment агуулж буй Main.java
2.Fragment хэлбэрээр ашиглаж байгаа frgClass.java
3.frgClass.java Layout файл frgClassLayout.xml

1.Main.java файл
//Main.java файл
frgClass frgclass = (frgClass) getFragmentManager().findFragmentById(R.id.frgClassLayout);
int callFlg = 0;
//Button Onclick
@Override
public void onClick(View v) {
    switch(v.getId()){
        case R.id.btn1 :
                        callFlg = 1;
                        frgclass.updateContent(callFlg);
        break;
        }
}

2.frgClass.java файл

//

LinearLayout frgLayout= (LinearLayout) mainView.findViewById(R.id.frgLayout);

//
public void updateContent(final int flg) {
        switch(flg){
            case 1 :

                        frgLayout.removeAllViews();

               TextView valueTV = new TextView(getActivity());
               valueTV.setText("hello world");
               valueTV.setId(5);
               valueTV.setLayoutParams(new LayoutParams(
                                           LayoutParams.FILL_PARENT,
                                           LayoutParams.WRAP_CONTENT));

            break;
            default:

                       //your process
            break;
               }
}

3. frgClassLayout.xml файл


 
  

Continue Reading...

11/27/2011

Sony Tablet


Хэн нэг нь android os-тэй tablet pc авах гэж байгаа бол
Sony Tablet дажгүй юм байна шүү. Надад лав бусдаасаа хавь илүү юм шиг санагдсан. Үнийн хувьд жаахан үнэтэй ч ашиглахад амар бас цэнэгээ гайгүй удаан барьдаг юм байна гэж...
Бусад зураг
Continue Reading...

11/24/2011

Android : Holo Theme

Holo Theme ашиглаж байхад titlebar-г customize хийж болохгүй юм. Style-нхаа parent-г зүгээр Theme гэхээр болоод байгаа хэрнээ Holo Theme гэж тодорхойлохоор ажилдаггүй ээ. Holo Theme-г ашигламаар байдаг customize хийж байсан хүн байвал туршлагаасаа хуваалцааж.
Continue Reading...

11/21/2011

Android : Cache directory-н талаар

Android арр бичиж байхад Cache directory ашиглах шаардлага ихээхэн гарч байгаа болов уу. Хэдэн санаа болохоор зүйл энэ бичлэгтэй оруулъя гэж бодлоо.
Cache directory-д дэд хавтас үүсгэх

File file = new File(getCacheDir(), "your folder name/");
//Дээрх folder байгаа эсэхийг шалгах
if (!file.exists()) {
//байхгүй тохиолдолд үүсгэх
if(file.mkdirs()){
//Үүсгэсэн folder тоо файл хуулах
FileOutputStream fos = new FileOutputStream(new File(getCacheDir(), "your folder name/" + хуулах файлийн зам));
fos.close();
}
}

Cache directory устгах

public static void fdeleteCacheDir(Context context) {
Runtime localRuntime = Runtime.getRuntime();
String cachePath = context.getCacheDir().getPath();
String cmd = "rm -R " + cachePath;
try {
localRuntime.exec(cmd);
} catch (IOException err) {
Log.d(TAG, " fdeleteCacheDir:" + err.getMessage());
}
}

Continue Reading...

10/21/2011

Android Device information-г ашиглах талаар


Дараах жижигхэн жишээ код хэрэг болж магад гэж бодоод оруулж байна.

ICCID、IMSI、IMEI мэдээлэлийг авах
AndroidManifest.xml-д дараах uses-permission нэмнэ



Java Code

TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);

//ICCID
String iccid = telephonyManager.getSimSerialNumber();

//IMSI
String subscriberid = telephonyManager.getSubscriberId();

//IMEI
String deviceid = telephonyManager.getDeviceId();


МАС address авахдаа
AndroidManifest.xml-д дараах uses-permission нэмнэ



Java Code

WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
String macAddress = wifiInfo.getMacAddress();



OS хувилбар, тухайн Device-н нэр авахдаа

//OS Version
String osVersion = Build.VERSION.RELEASE;

//Device Name
String productName = Build.PRODUCT;
Continue Reading...

10/10/2011

Android:XmlPullParser & Dialog


Блогтоо XmlPullParser & Dialog ашигласан жижигхэн жишээ оруулж байна. Та бүхэн санаа оноо авна биз дээ.


Тайлбар :

XmlPullParser функцыг ашигласнаар хавтсанд байрлах бүх XML файлуудыг уншиж файл тус бүрээр тэдгээрийн утгыг хялбараар ашиглаж болдог.



Тайлбар :

Энэ удаагынхаа жишээ нь Dialog ашиглах бүртээ тодорхойлох бус Dialog функыг нэг тодорхойлон хэд хэдэн удаа Dialog-н утга болон гарчигийн дахин тодорхойлж болохуйц жишээ болно.


assets хавтсанд dialog.xml файлыг үүсгэнэ.



XmlPullParser and Dialog
XmlPullParser and Dialog ашигласан жишээ


Жишээ код :

//Dialog Flg
public static final int DIALOG_FLG = 0;
//Dialog Title
public static final String STR_TITLE = "TITLE";
//Dialog Message
public static final String STR_MESSAGE = "MESSAGE";
// Tag-n ner
String STR_TAG = "";
// Value
String STR_VALUE = "";
//
Bundle data = new Bundle();
@Override
public void onCreate(Bundle savedInstanceState) {
try{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//XmlPullParser
XmlPullParser parser = Xml.newPullParser();
// assets Folder dahi xml file-diig unshih
AssetManager asset = getResources().getAssets();
InputStream is = null;
//dialog.xml file neeh
is = asset.open("dialog.xml");
InputStreamReader isr = new InputStreamReader(is);
parser.setInput(isr);

for (int type = parser.getEventType(); type != XmlPullParser.END_DOCUMENT;
type = parser.next()) {
switch(type) {
case XmlPullParser.START_TAG: // start tag
STR_TAG = parser.getName();
break;
case XmlPullParser.TEXT: // tag-n utga
STR_VALUE = parser.getText();
// utga bga esehiig shalgah
if(STR_VALUE.trim().length() != 0) {
// title tag-d bichigdsen utgiig data huvisagchid olgoh
if(STR_TAG.equals("title")) {
data.putString(STR_TITLE, STR_VALUE);
} else if(STR_TAG.equals("msg")) {
//msg tag-d bichigdsen utgiig data huvisagchid olgoh
data.putString(STR_MESSAGE, STR_VALUE);
}
}
break;
case XmlPullParser.END_TAG: // end tag
break;
}
}
//Dialog haruulah
showDialog(DIALOG_FLG, data);
}catch(Exception err){
Log.e("ERROR",err.getMessage());
}
}


@Override
protected Dialog onCreateDialog(int id){
return null;
}

@Override
protected Dialog onCreateDialog(int id, Bundle data){
Dialog dialog = null;
switch(id){
case DIALOG_FLG:
String title = data.getString(STR_TITLE);
String mes = data.getString(STR_MESSAGE);
dialog = new AlertDialog.Builder(this)
.setTitle(title)
.setMessage(mes)
.setPositiveButton("OK", null)
.create();
break;
}

return dialog;
}

@Override
protected void onPrepareDialog(int id,Dialog dialog,Bundle data){
switch(id){
case DIALOG_FLG:
String mes = data.getString(STR_MESSAGE);
AlertDialog ad = (AlertDialog)dialog;
ad.setMessage(mes);
break;
}
}

Continue Reading...

6/28/2011

Android Intent ашиглах талаар

Бас нэг жижигхэн тэмдэглэл оруулчихъя.
Android Intent-г ашиглаад утга дамжлуулахдаа дараах байдлаар дамжуулна.

Intent i = new Intent(this, NextForm.class);
i.putExtra("Value1", "NextForm ");
i.putExtra("Value2", 100);
//NextForm файлдаа
Intent intent = this.getIntent();
String strValue1 = intent.getStringExtra("Value1");
int intValue2 = intent.getIntExtra("Value2",0);

Active хийсэн цонхныхоо буцах утгыг нь авахдаа
дараах байдлаар авч болно.

//Activity хийхдээ дарааф функцыг ашиглана
startActivityForResult(intent,REQUEST_CODE)
//
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK && requestCode == REQUEST_CODE) {
//RESULT_CANCELED
}
}
//finish хийхдээ
setResult(RESULT_OK, data);
finish();
//мөн түүнчлэн
setResult(RESULT_CANCELED, data);
finish();


Android анхлан судалж байгаа хүмүүст энэ тэмдэглэл милээн хэрэг болох болов уу гэж бодлоо. Дараа нь TabHost-н талаар жаахан зүйл бичнэ ээ. Жижиг зүйлээс болоод ажиллахаа байчихдаг сонин контрол байгаан. Асуух зүйл байвал коммент үлдээгээрэй мэдэх зүйл байвал хариулахад хэзээд бэлэн.
Continue Reading...

6/22/2011

Android DatePicker & Date class


Ойрд блогтоо бичлэг нэмсэнгүй. Өнөөдөр ганц бичлэг нэмчихье. Сүртэй биш ч гэлээ бас мэдэж байхад гэмгүй зүйл гэж бодлоо.
DatePicker-н утгыг оноож өгөхдөө updateDate гишүүн функцыг нь ашиглана. Дараах байдлаар

DatePicker .updateDate(yyyy,MM,dd);

Жишээлбэл дараах огноогоор DatePicker-н утгыг өөрчлөх болсон гэж үзвэл.

String temp_date = "2011-12-13";
SimpleDateFormat curFormater = new SimpleDateFormat("yyyy-MM-dd");
Date date = curFormater.parse(temp_date);
int year = date.getYear();
int month = date.getMonth();
int day = date.getDay();
DatePicker .updateDate(year,month,day);

Дээрх кодыг ажилуулбал алдаа заах бөгөөд учир нь
Date классын

getYear функцын утга нь : year-1900
getMonth функцын утга нь : 0-11
getDay функцын утга нь : 1-7 буюу Даваа-Ням хүртлэх утга буцаадаг болно

Жава дээр байнга юм хийдэг хүмүүст бол асуудалгүй боловч тэрхэн зуур андуураад биччих магадлал ихээхэн өндөр золиг байна лээ.
getDay функцын оронд getDate функыг ашиглаарай. getYear функцын утган дээр 1900 нэмээд бичвэл дээрх жишээ асуудалгүй ажиллах болно.

Continue Reading...

4/21/2011

Adapter & ListView & ExpandalbeListView

Сонирхосон хэн нэг нь үзээрэй гэж...



Continue Reading...

9/12/2009

Flex Chart ашиглах жишээ № 1

Flex chart нь үнэхээр олон давуу талтай. Чадах ядахаараа олон сонирхолтой жишээнүүдийг оруулах болно оо. Кодыг нь харахыг хүсвэл дэлгэрэнгүй гээд...






import mx.collections.ArrayCollection;
[Bindable]
public var expenses:ArrayCollection = new ArrayCollection([
{Expense:"Бинзен", Amount:25000},
{Expense:"Хоол хүнс", Amount:50000},
{Expense:"Хувцас", Amount:200000},
{Expense:"Байр", Amount:450000},
{Expense:"Нийтийн тээвэр", Amount:10000},
{Expense:"Бусад", Amount:200000}
]);
[Bindable]
public var explodingArray:Array = [0,0,0,.2,0,0]
private function degrees_func(item:Number):String {
return item + String.fromCharCode(176);
}

]]>




minimum="0"
maximum="360"
liveDragging="true"
snapInterval="1"
tickInterval="10"
showTrackHighlight="true"
dataTipPrecision="0"
dataTipFormatFunction="degrees_func" />


dataProvider="{expenses}"
showDataTips="true"
>

field="Amount"
nameField="Expense"
perWedgeExplodeRadius="{explodingArray}"
labelPosition="callout"
startAngle="{slider.value}"
/>







Continue Reading...

9/06/2009

Android Application does not specify an API level requirement!






Дээрх анхааруулга компайл хийж байх явцад Concole дээр харуулах бөгөөд яг дараах мөрөнд нь таны ашиглаж Device API хувилбарыг харуулах болно. Жишээлбэл Device API version is 3 (Android 1.5) гэх мэт. Android 1.1 байвал Device API version is 2 байна.
Үүнийг тодорхойлж өгөхгүй бол MAP харагдахгүй байх бөгөөд Manifest.xml файлд дээрх хувилбарын талаарх мэдээлэлийг uses-sdk тагт тодорхойлж өгсөнөөр энэ анхааруулга байхгүй болох ба таны програм үнэн зөв ажиллах болно. Тагын бүтэц нь дараах хэлбэртэйн байна.







Анхааруулга : Энэ хүү таг нь manifest тагы child таг болно.



Continue Reading...

9/03/2009

Android APIKEY үүсгэх

Та бүхэнд Android дээр MAP-тай холбоотой арр хөгжүүлж байхад apiKey шаардлагатай үе байх бөгөөд энэ хүү apiKey үүсгэхдээ дараах алхамаар үүсгэж болно.

1.Command prompt дээр дараах командыг биелүүлэнэ
C:\>"C:\Java\jdk1.5\jre1.5\bin\keytool.exe" -list -alias androiddebugkey -keystore
"C:\Documents and Settings\Tanii user name\Local Settings\Application Data\Android\debug.keystore" -storepass android -keypass android
Дээрх команд дээр мэдээж таны компьютер дээр суусан JDK дироктор байх ба мөн debug.keystore файлын default дирокторыг бичсэн болно. Та энэ хүү дирокторыг зөв эсэхийг шалгаж болох ба
Eclipse -> Window -> Preferences -> Android -> Build tab-г сонгоход Default debug keystore гэсэн хэсэгт дээрх файлын дирокторыг харуулах бөгөөд энэ хүү дирокторыг ашиглах нь зөв юм.

Дээрх команд амжилттай биелэвэл Команд промт дээр дараах маягаар key харуулах болно
Certificate fingerprint (MD5): 90:1D:53:4A:D1:82:1B:F1:56:83:97:AB:27:19:FC:A3
2.Дээрх кодыг энэ сайтруу орон
My certificate's MD5 fingerprint: хэсэгт хуулан Generate API Key товчийг

дарахад таныг Google дээрх эрхээрэй нэвтрэх цонх гарч ирэх бөгөө нэвтрэн орсоноор таны API Key-г дэлгэцэнд харуулах болно. Жишээ нь : 07c9FMKtYDjZKtuNdy9X8xdliIYxxxfd6x76F1A
Ингээд та apiKey-тэй боллоо. :-p
Continue Reading...

9/01/2009

Android DroidDraw түүл



Android дээр арр бичиж байгаа хүмүүс дизайн гаргах гээд xml файлд элемэнт нэмж байж магад гээд энэ хүү бичлэгийг оруулж байна. Энэ хүү DroidDraw түүл дизайн гаргахад хялбар бөгөөд visual-р компонентоо өрөн тохиргоогоог нь хийж кодыг нь Generate хийн ашиглаж болох түүл юм. Дэлгэрэнгүй гэж ороод татаад аваарай.

Татах <<< DroidDraw >>> Download
Continue Reading...
 

Надад итгэл бий Copyright © 2009 WoodMag is Designed by Ipietoon for Free Blogger Template