|
|
|
[Android] เขียน app ให้รับ sms แล้ว run application ค่ะ ช่วยแนะนำวิธีเขียนด้วยค่ะ |
|
|
|
|
|
|
|
ตอนนี้เขียนให้ app ส่ง message จากหนึ่ง emulator ไปที่ emulator ที่สองค่ะ
ต้องการให้ emulator ที่สอง run application ที่เขียนไว้เกี่ยวกับ web view ขึ้นมาหลังจากกดอ่าน message
ลองทำตามมาหลายเว็บแล้วค่ะ แต่ยังหาวิธีไม่ได้ ไม่ทราบว่าต้องนำโค้ดของ app ที่ต้องการให้ run ไว้ไปใส่ไว้ตรงไหน
หรือมีคำสั่งอะไรเพิ่มเติม ช่วยแนะนำด้วยนะคะ ขอบคุนค่ะ
ไฟล์ main.java ค่ะ
Code (Android-Java)
package com.smsreceiver;
import android.app.Activity;
import android.os.Bundle;
import android.app.PendingIntent;
import android.content.Intent;
import android.telephony.SmsManager;
import android.view.View;
import android.webkit.WebView;
import android.widget.Button;
public class MainActivity extends Activity {
Button btnSendSMS;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnSendSMS = (Button) findViewById(R.id.bntSendSMS);
btnSendSMS.setOnClickListener(new View.OnClickListener(){
public void onClick(View v)
{
sendSMS("5554", "Hello");
}
});
}
//---sends an SMS message to another device---
private void sendSMS(String phoneNumber, String message)
{
SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage(phoneNumber, null, message, null, null);
}
}
ไฟล์ receive.java ค่ะ
Code (Android-Java)
package com.smsreceiver;
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.telephony.SmsMessage;
import android.view.Menu;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.widget.Toast;
public abstract class SMSReceiver extends Activity
{
private PackageManager pm;
private BroadcastReceiver reciever = new BroadcastReceiver(){
@Override
public void onReceive(Context context, Intent intent) {
//---get the SMS message passed in---
Bundle bundle = intent.getExtras();
SmsMessage[] msgs = null;
String str = "";
if (bundle != null)
{
//---retrieve the SMS message received---
Object[] pdus = (Object[]) bundle.get("pdus");
msgs = new SmsMessage[pdus.length];
for (int i=0; i<msgs.length; i++){
msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]);
str += "SMS from" + msgs[i].getOriginatingAddress();
str += " :";
str += msgs[i].getMessageBody().toString();
str += "\n";
}
//---display the new SMS message---
Toast.makeText(context, str, Toast.LENGTH_SHORT).show();
}
pm = getPackageManager();
Intent intent1 = pm.getLaunchIntentForPackage("com.webview");
startActivity(intent1);
}
};
@Override
public void onCreate(Bundle state){
setContentView(R.layout.web);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
ไฟล์ manifest ค่ะ
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.notify"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<uses-permission android:name="android.permission.INTERNET"/>
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.notify.MainActivity"
android:label="@string/app_name"
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="RecieveActivity"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
android:screenOrientation="portrait"
android:label="@string/title_activity_main" />
</application>
</manifest>
อันนี้ โค้ดของ app ที่ต้องการให้ run ขึ้นมาค่ะ
Code (Android-Java)
package com.webview;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.webkit.WebSettings;
import android.webkit.WebView;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WebView mywebview =(WebView)findViewById(R.id.webView1);
mywebview.loadUrl("http://pectecth.dyndns.org:20380/BatteryArm/BatteryArm.cgi");
WebSettings webSettings = mywebview.getSettings();
webSettings.setBuiltInZoomControls(true);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
Tag : Mobile, Android
|
|
|
|
|
|
Date :
2013-04-13 23:11:09 |
By :
honeyshibuyaa |
View :
1591 |
Reply :
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
มันมี Step ตรวจสอบน่ะครับ
1. Emulator หนึ่งสามารถส่งข้อมูลไปยัง Server ได้หรือไม่
2. บน Server มีข้อมูลหรือไม่
3. Emulator สองสามารถรับข้อมูลจาก Server ได้หรือไม่
ลองตรวจสอบดูครับว่า ขั้นตอนไหนที่ไม่ได้
|
|
|
|
|
Date :
2013-04-14 07:04:30 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอโทษค่ะ ไม่ได้บอกว่าส่ง messge ไปได้แล้ว
ขั้นตอนที่ยังไม่ได้คือ ให้มัน auto run app ขึ้นมาอ่ะค่ะ
|
|
|
|
|
Date :
2013-04-16 23:53:56 |
By :
honeyshibuyaa |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|