tag:blogger.com,1999:blog-53218688138819262032024-03-18T08:32:44.469+05:30Android BlogA blog about android, php, mysq, apis etc.Anonymoushttp://www.blogger.com/profile/06900804780938915186noreply@blogger.comBlogger9125tag:blogger.com,1999:blog-5321868813881926203.post-91215727309580450582012-06-08T13:07:00.006+05:302012-06-08T13:12:49.847+05:30Project MotionMote - Control Games via Android Phone Wirelessly<div class="separator" style="clear: both; text-align: center;">
<a href="http://mytechattempts.files.wordpress.com/2011/03/adnroid-_interface1.png?w=207&h=300" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://mytechattempts.files.wordpress.com/2011/03/adnroid-_interface1.png?w=207&h=300" /></a></div>
<br />
<i><b>MotionMote</b></i> is all about turning your Android smart phone to control PC games. This idea be extended for other mobile OS platforms as well.<br />
<br />
Most of the motion based controllers WiiMote and PlayStationMove are not very popular in computer gaming due to price, lack of connectivity. Instead joysticks, joy pads
and steering wheels are heavily used for computer simulation based games, but they
do not support motion detection. The MotionMote binds the functionality of smartphone touch screen and and motion sensors, to create a virtual gaming environment
for PC simulation based games wirelessly. The six axis accelerometer sensor and the multi-touch technology in the latest smartphones gives precise inputs to the PC.<br />
<br />
<div style="text-align: left;">
The smartphone and the computer should be connected through wifi. Data is transmitted to the computer
via the phone, and then the compute retransmit data to virtual joypad (PPJoy) is a virtual joystick driver.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
All the executable files can be downloaded from <a href="http://code.google.com/p/motionmote/downloads/list">here</a>.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<b>Technologies used</b></div>
<ul>
<li>Android SDK 2.1(Mobile App)</li>
</ul>
<ul>
<li>.Net Framework 3.5(Desktop Application)</li>
</ul>
<div style="text-align: left;">
</div>
<div style="text-align: left;">
References – DroidPad</div>
<br />Anonymoushttp://www.blogger.com/profile/06900804780938915186noreply@blogger.com6tag:blogger.com,1999:blog-5321868813881926203.post-85936462503718131252011-09-08T17:12:00.000+05:302012-03-08T14:05:42.191+05:30Android MySQL Connectivity via JSON<br />
The most common way to connect to a remote MySQL database from an
android device, is to put some kind of service into the middle. Since
MySQL is usually used together with PHP, the easiest and most obvious
way to write a PHP script to manage the database and run this script
using HTTP protocol from the android system.<br />
<br />
Earlier in my post I have mentioned a way of connection via mysql connector <a href="http://appinventor.blogspot.com/2011/07/android-mysql.html">Link</a> <br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-OXHK2DT4qVM/T1hvUrWbFKI/AAAAAAAAGrY/ewqQa2e9bZg/s1600/mysql_logo.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="233" src="http://1.bp.blogspot.com/-OXHK2DT4qVM/T1hvUrWbFKI/AAAAAAAAGrY/ewqQa2e9bZg/s320/mysql_logo.jpg" width="320" /></a></div>
<br />
This example source code provides two way synchronization (Phone to Server and from Server to Phone) <br />
<br />
Send Data from SQLite to MySQL<br />
<br />
<pre style="background-image: URL(http://2.bp.blogspot.com/_z5ltvMQPaa8/SjJXr_U2YBI/AAAAAAAAAAM/46OqEP32CJ8/s320/codebg.gif); background: #f0f0f0; border: 1px dashed #CCCCCC; color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"><code style="color: black; word-wrap: normal;"> //Retrieve query results in cursor format
startManagingCursor(cs);
if(cs!=null)
{
cs.moveToFirst();
jsonarray = new JSONArray();
while (cs.isAfterLast() == false) {
json = new JSONObject();
try {
json.put("a",cs.getString(cs.getColumnIndex("a")));
json.put("b",cs.getString(cs.getColumnIndex("b")));
json.put("c",cs.getString(cs.getColumnIndex("c")));
jsonarray.put(json);
cs.moveToNext();
}
catch (Exception e) {
Log.d("Android", "JSON Error");
}
}
try {
// Create a new HttpClient and Post Header
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://192.168.1.1/set_file.php");
// Post the data:
StringEntity se = new StringEntity(jsonarray.toString());
httppost.setEntity(se);
httppost.setHeader("Accept", "application/json");
httppost.setHeader("Content-type", "application/json");
// Execute HTTP Post Request
System.out.print(json);
HttpResponse response = httpclient.execute(httppost);
// for JSON:
if(response != null)
{
InputStream is = response.getEntity().getContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
StringBuilder sb = new StringBuilder();
String line = null;
try {
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
} catch (IOException e) {
e.printStackTrace();
}
finally {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
catch (ClientProtocolException e) {
} catch (IOException e) {
}
}
cs.close();</code></pre>
<br />
<br />
<br />
Retreive Data from MySQL to SQLite<br />
<br />
<pre style="background-image: URL(http://2.bp.blogspot.com/_z5ltvMQPaa8/SjJXr_U2YBI/AAAAAAAAAAM/46OqEP32CJ8/s320/codebg.gif); background: #f0f0f0; border: 1px dashed #CCCCCC; color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"><code style="color: black; word-wrap: normal;"> String result = "";
//http get
try{
lastsync = URLEncoder.encode(lastsync,"utf-8");
String address = url + "/get.php?variable1="+variable1+"&variable2="+variable2;
Log.v("Sync", address);
HttpClient httpclient = new DefaultHttpClient();
HttpGet httpget = new HttpGet(address);
response = httpclient.execute(httpget);
HttpEntity entity = response.getEntity();
is = entity.getContent();
}catch(Exception e){
Log.e("log_tag", "Error in http connection "+e.toString());
}
//convert response to string
try{
BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
Log.v("Test",line);
sb.append(line + "\n");
}
is.close();
result=sb.toString();
}catch(Exception e){
Log.e("log_tag", "Error converting result "+e.toString());
}
set_tms_logsheet();
if(result.length()==5)
{
}
else {
//parse json data
try{
JSONArray jArray = new JSONArray(result);
for(int i=0;i<jArray.length();i++){
JSONObject json_data = jArray.getJSONObject(i);
String querylog= "insert or replace into table(a,b,c) values('"+json_data.getString("a")+"','"+json_data.getString("b")+"','"+json_data.getString("c")+"')";
dbA.insert(querylog);
}
}
catch(JSONException e){
Log.e("log_tag", "Error parsing data "+e.toString());
}
}
</code></pre>
<br />
<br />
get.php Code (Push Data to Phone from MySQL)<br />
<br />
<pre style="background-image: URL(http://2.bp.blogspot.com/_z5ltvMQPaa8/SjJXr_U2YBI/AAAAAAAAAAM/46OqEP32CJ8/s320/codebg.gif); background: #f0f0f0; border: 1px dashed #CCCCCC; color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"><code style="color: black; word-wrap: normal;"> <?php
require_once('Connections/connection.php');
mysql_select_db($database_localhost,$con);
$timestamp = $_GET['timestamp'];
$query_search = "select * from table where a = '".$timestamp."' ";
$query_exec = mysql_query($query_search) or die(mysql_error());
if (mysql_errno()) {
header("HTTP/1.1 500 Internal Server Error");
echo $query.'\n';
echo mysql_error();
}
else {
if( $query_exec!=null){
while($row=mysql_fetch_assoc($query_exec))
$output[]=$row;
print(json_encode($output));
}
else {echo "No Data"; }
mysql_close();
}
?>
</code></pre>
<br />
set.php Code (Push Data to MySQL form SQLite)<br />
<br />
<pre style="background-image: URL(http://2.bp.blogspot.com/_z5ltvMQPaa8/SjJXr_U2YBI/AAAAAAAAAAM/46OqEP32CJ8/s320/codebg.gif); background: #f0f0f0; border: 1px dashed #CCCCCC; color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"><code style="color: black; word-wrap: normal;"> <?php
$json = file_get_contents('php://input');
$data = json_decode($json);
require_once('Connections/connection.php');
mysql_select_db($database_localhost,$con);
foreach ($data as $id => $jsons) {
$query= "insert into table(a,b,c) values(".$jsons->a.",".$jsons->b.",".$jsons->c.",'".$jsons->c."')";
//echo $query;
echo "\n";
$query_exec = mysql_query($query) or die(mysql_error());
}
mysql_close();
echo "Success";
?>
</code></pre>
<br />
<br />
Connection.php (Database Connection)<br />
<br />
<pre style="background-image: URL(http://2.bp.blogspot.com/_z5ltvMQPaa8/SjJXr_U2YBI/AAAAAAAAAAM/46OqEP32CJ8/s320/codebg.gif); background: #f0f0f0; border: 1px dashed #CCCCCC; color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"><code style="color: black; word-wrap: normal;"> <?php
$hostname_localhost ="localhost:3306";
$database_localhost ="dbname";
$username_localhost ="username";
$password_localhost ="password";
$con = mysql_connect($hostname_localhost,$username_localhost,$password_localhost)
or
trigger_error(mysql_error(),E_USER_ERROR);
?>
</code></pre>Anonymoushttp://www.blogger.com/profile/06900804780938915186noreply@blogger.com24tag:blogger.com,1999:blog-5321868813881926203.post-77382551711780110312011-09-07T10:21:00.000+05:302012-09-07T12:03:37.144+05:30Google Weather API Widget (PHP) (No longer Working)<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-pTvYsN1E2_Q/TmbzMLDwCLI/AAAAAAAAGf4/Yp6GbqaKCgM/s1600/weather+widget.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="101" src="http://2.bp.blogspot.com/-pTvYsN1E2_Q/TmbzMLDwCLI/AAAAAAAAGf4/Yp6GbqaKCgM/s320/weather+widget.png" width="320" /></a></div>
<br />
<br />
<span style="color: red;">Note: Google has killed the free hidden weather API so this method no longer works </span><br />
<br />
The Google Weather API is a hidden service for developers to get weather data for any location with ease. <br />
Indeed, you just simply pass a city name or postal code, such as this Mountain View<br />
<br />
Query by City<br />
<pre style="background-image: URL(http://2.bp.blogspot.com/_z5ltvMQPaa8/SjJXr_U2YBI/AAAAAAAAAAM/46OqEP32CJ8/s320/codebg.gif); background: #f0f0f0; border: 1px dashed #CCCCCC; color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"><code style="color: black; word-wrap: normal;">http://www.google.com/ig/api?weather=Mountain+View
</code></pre>
<br />
Query by Coordinates<br />
<pre style="background-image: URL(http://2.bp.blogspot.com/_z5ltvMQPaa8/SjJXr_U2YBI/AAAAAAAAAAM/46OqEP32CJ8/s320/codebg.gif); background: #f0f0f0; border: 1px dashed #CCCCCC; color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"><code style="color: black; word-wrap: normal;">http://www.google.com/ig/api?weather=</code><code style="color: black; word-wrap: normal;">,,,30670000,104019996</code><code style="color: black; word-wrap: normal;">
</code></pre>
<br />
To get an XML response like this:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://blog.programmableweb.com/wp-content/googe_weather.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="207" src="http://blog.programmableweb.com/wp-content/googe_weather.png" width="320" /></a></div>
<br />
This is the php code to get a widget like shown above. Line 20 defines the location for the widget.<br />
Either you can use postal code, city or coordinates multiplied by 1000000 (Check Line No 21,22,23,25)<br />
<br />
<pre style="background-image: URL(http://2.bp.blogspot.com/_z5ltvMQPaa8/SjJXr_U2YBI/AAAAAAAAAAM/46OqEP32CJ8/s320/codebg.gif); background: #f0f0f0; border: 1px dashed #CCCCCC; color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"><code style="color: black; word-wrap: normal;">1: <?php
2: function convert($temp)
3: {
4: // Converting Fahrenheit To Celsius, vice versa
5: global $config;
6: $temperature = $temp;
7: if( strtoupper($config['base-temp-unit']) == 'F' && strtoupper($config['display-temp-unit']) == 'C' )
8: {
9: // Converting Fahrenheit To Celsius
10: $temperature = round((5/9)*($temp-32));
11: }
12: if( strtoupper($config['base-temp-unit']) == 'C' && strtoupper($config['display-temp-unit']) == 'F' )
13: {
14: // Converting Celsius to Fahrenheit
15: $temperature = round((9/5)*$temp+32);
16: }
17: return $temperature;
18: }
19: $url = "http://www.google.com";
20: $location = "colombo"; // <city>,<country code>
21: $lat;
22: $lng;
23: //$location = ",,,30670000,104019996"; // Coordinates
24: $weather_url = "{$url}/ig/api?weather={$location}";
25: //$weather_url = "{$url}/ig/api?weather=,,,{$lat},{$lng}";
26: $config['base-temp-unit'] = 'F'; // F=Fahrenheit, C=Celsius
27: $config['display-temp-unit'] = 'C'; // F=Fahrenheit, C=Celsius
28: if( $xmlData = file_get_contents($weather_url) )
29: {
30: $xml = new SimpleXMLElement($xmlData);
31: $eol = "\r\n";
32: // Display basic information
33: echo("<table width='70%' border='0' cellspacing='0' cellpadding='5'>");
34: echo("<tr>");
35: echo("<td width='11%' rowspan='4' align='center' valign='middle'>");
36: echo("<img src='{$url}{$xml->weather->current_conditions->icon->attributes()}' alt='' width='60' height='60' border='0' style='margin-right: 3px; vertical-align: top;>'");
37: echo("</td>");
38: echo("<td width='33%' align='left' valign='top'>{$xml->weather->current_conditions->temp_c->attributes()} C</td>");
39: echo("<td width='56%' rowspan='4' align='left' valign='top'><table width='100%' border='0' cellspacing='0' cellpadding='5' style='border-left:1px solid #CCCCCC'>");
40: echo("<tr>");
41: foreach( $xml->weather->forecast_conditions as $i => $result )
42: {
43: echo("<td align='center'>{$result->day_of_week->attributes()}</td>");
44: }
45: echo("</tr><tr>");
46: foreach( $xml->weather->forecast_conditions as $i => $result )
47: {
48: echo("<td align='center'><img src='{$url}{$result->icon->attributes()}'></td>");
49: }
50: echo("</tr><tr>");
51: foreach( $xml->weather->forecast_conditions as $i => $result )
52: {
53: echo("<td align='center'><table width='100%' border='0' cellspacing='0' cellpadding='5'><tr><td align='center'>".convert($result->high->attributes())." ".strtoupper($config['display-temp-unit'])."</td><td align='center'>".convert($result->low->attributes())." ".strtoupper($config['display-temp-unit'])."</td></tr></table></td>");
54: }
55: echo("</tr></table></td></tr><tr>");
56: echo("<td>{$xml->weather->current_conditions->condition->attributes()}</td>");
57: echo("</tr><tr>");
58: echo("<td>{$xml->weather->current_conditions->wind_condition->attributes()}</td>");
59: echo("</tr><tr>");
60: echo("<td>{$xml->weather->current_conditions->humidity->attributes()}</td>");
61: echo("</tr></table>");
62: }
63: ?>
</code></pre>
Anonymoushttp://www.blogger.com/profile/06900804780938915186noreply@blogger.com5tag:blogger.com,1999:blog-5321868813881926203.post-73416942982476965512011-07-14T22:01:00.000+05:302011-09-06T22:28:39.024+05:30Android MySQL Connectivity (MySQL Connector)<div class="separator" style="clear: both; text-align: center;">
<a href="http://helloandroid.com/files/images/mysql_logo.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://helloandroid.com/files/images/mysql_logo.jpg" /></a></div>
<br />
<br />
Hope this method works. However its not recommended to use JDBC Connectivity for connections over wifi or 3g. So the best way to connect MySQL from android is to use JSON or XML Parsings<br />
<br />
<b>Step 1 Including MySQL Connector</b><br />
Add this jar to the classpath. In Eclipse Right Click in the Project>BuildPath>Configure Build Path. Then a window should popup, click the libraries tab at the top, click add external jar and navigate to File System/usr/share/java/mysql-connector-java.jar<br />
<br />
<b>Step 2 Coding Part</b><br />
<br />
JDBC, simply allows you to connect to your server from java. <br />
<br />
<pre style="font-family:arial;font-size:12px;border:1px dashed #CCCCCC;width:99%;height:auto;overflow:auto;background:#f0f0f0;;background-image:URL(http://2.bp.blogspot.com/_z5ltvMQPaa8/SjJXr_U2YBI/AAAAAAAAAAM/46OqEP32CJ8/s320/codebg.gif);padding:0px;color:#000000;text-align:left;line-height:20px;"><code style="color:#000000;word-wrap:normal;">1: import java.sql.Connection;
2: import java.sql.DriverManager;
3: import java.sql.ResultSet;
4: import java.sql.Statement;
5: public class DB {
6: private static final String url = “jdbc:mysql://localhost/android”;
7: private static final String user = “root”;
8: private static final String password = “MySql Password”;
9: public static void main(String args[]) {
10: try {
11: Class.forName(“com.mysql.jdbc.Driver”);
12: Connection con = DriverManager.getConnection(url, user, password);
13: Statement st = con.createStatement();
14: ResultSet rs = st.executeQuery(“select * from User”);
15: while(rs.next()) {
16: Log.v("DB", rs.getString(2) )
17: }
18: } catch (Exception e) {
19: }
20: }
21: }
</code></pre>Anonymoushttp://www.blogger.com/profile/06900804780938915186noreply@blogger.com86tag:blogger.com,1999:blog-5321868813881926203.post-55691440639633856502011-07-13T11:59:00.000+05:302011-07-13T12:04:34.883+05:30Download Android New Market V3.0.26 (Movies,Books, Multiple Account SupportThe new Android Market has started rolling out to some user. If you haven't received it. <a href="http://www.multiupload.com/SSVFSEQJ4N">Download here</a> and install it using File managers<br />
<br />
Please note that movies cannot be played on rooted devices, just as before.<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://tapatalk.com/mu/aefc779f-fd4f-75f1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="http://tapatalk.com/mu/aefc779f-fd4f-75f1.jpg" width="192" /></a></div>Anonymoushttp://www.blogger.com/profile/06900804780938915186noreply@blogger.com1tag:blogger.com,1999:blog-5321868813881926203.post-20246249556131621182011-06-28T13:39:00.000+05:302011-06-28T14:04:47.155+05:30Guide: Amazon Appstore for Non US users<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://android.appstorm.net/wp-content/uploads/2011/03/AmazonAppstoreLogo.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 200px; height: 200px;" src="http://android.appstorm.net/wp-content/uploads/2011/03/AmazonAppstoreLogo.jpg" alt="" border="0" /></a><br /><span id="intellitxt" name="intellitxt"><br />Amazon few months ago launched its own web and mobile version of the own Android Marketplace called as the "Amazon Appstore". </span><br /><br />The Amazon Android App Store gives away a paid application free for a day.But unfortunately it's limited to US customers only for the time being.<br /><br />Modaco.com site admi<span style="text-decoration: underline;"></span><span class="normalname">n Paul found a way to trick Amazon to get the Amazon Appstore.<br />All credits goes to him.<br /><br /></span><b>Step 1 - Create a Amazon account</b><br /><br />First you need to create an Amazon.com account. Even if you have an amazon account its better to create a new one. Visit the <a href="http://amzn.to/hxcCjq" target="_blank"> Amazon.com sign in page</a> and select 'No, I am a new customer'.<br /><br /><b>Step 2 - Setting up your billing address<br /><br /></b>Next you need to set up a US address, you do this on the <a href="http://www.amazon.com/gp/css/account/address/view.html" target="_blank">Manage Address Book</a> page. This MUST be a valid US address.<br /><br />I used Google's HQ Address which is<br /><i></i> '1600 Amphitheatre Parkway Mountain View, CA 94043'<br /><br /><b>Step 3 - Setting up your phone number<br /><br /></b>Since I have a Google Voice account. I used that number.<b> </b>You could type any number starting with +1. Easier than that.<br /><br /><b>Step 4 - Setting up your payment card</b><br /><br />Use a test card number from one of the credit card providers, I used one of the <a href="https://www.paypalobjects.com/en_US/vhelp/paypalmanager_help/credit_card_numbers.htm" target="_blank">PayPal</a> test CC number<br /><br /><b>Step 5 - Install the AppStore on your device<br /><br /></b>After successfully creating the Amazon account. Amazon will mail you with the link to download the apk. Install the apk and Enjoy the free app a day<b><br /><br />If anything goes wrong</b><br /><ul><li>Visit the <a href="https://www.amazon.com/gp/digital/your-account/order-history.html" target="_blank">Digital Orders Page</a> page and you will see your pending purchases</li><li>Choose the option to retry the purchases, this time using your non-US card</li><li>The payments will complete and you will be able to download the apps on your device</li></ul>Anonymoushttp://www.blogger.com/profile/06900804780938915186noreply@blogger.com0tag:blogger.com,1999:blog-5321868813881926203.post-2411935727858123402011-06-09T19:37:00.000+05:302012-06-08T22:10:47.779+05:30Guide on Getting Google Music outside United States<a href="http://blog.toggle.com/wp-content/uploads/2011/05/Google-music-beta-music-online.jpg"><br /></a>This is how i got my Google Music Beta Invitation. Took me less than and 5 minutes to configure it.Before everything you need an Android phone( Requires a rooted phone) to do this,. and all thank goes to Paul O Brian for the great guide he provided.<br />
<br />
<a href="http://blog.toggle.com/wp-content/uploads/2011/05/Google-music-beta-music-online.jpg"><img alt="" border="0" src="http://blog.toggle.com/wp-content/uploads/2011/05/Google-music-beta-music-online.jpg" style="cursor: hand; cursor: pointer; display: block; height: 379px; margin: 0px auto 10px; text-align: center; width: 505px;" /></a><br />
<br />
<b>Step 1 - Requesting for an invitation</b><br />
Go to <a href="http://music.google.com/about/" target="_blank">http://music.google.com/about/</a> via a US proxy and request for an initation. I used <a href="http://www.hidemyass.com/">http://www.hidemyass.com/</a><br />
<br />
<b>Step 2 - Get the New Google Music Android App 3.0.1</b><br />
<br />
Check market for the New Google Music Beta App. If its not there, Use Market Enabler to fake the provide to some US provider(probably T- Mobile US) and recheck the market. Also you can manually download the apk and install It.<br />
<br />
<b>Step 3 - Last and the Hardest Part</b><br />
<br />
You have to edit your phones build properties to get it quickly. <a href="http://pastebin.com/ggrbByQf">Click Here</a><br />
Copy the system/build.prop file to your computer and edit the build prop to match the one above in the link. Make sure to take a backup of your build.prob before editing. I used Root Explorer to replace the file. And Restart the phone, and keep in online (connected with the internet for 1 hour). Also go to the Downloaded Music Beta App, Visit Market app etc to make Google think that you are using a Motorola Xoom (Google exclusively rolls out invitation for Motorola Xoom Users). Thats It, after about one hour replace you build.prop with the original one.<br />
<br />
Viola Thats It. Wait for the invitation. I got mine in one hour.Anonymoushttp://www.blogger.com/profile/06900804780938915186noreply@blogger.com1tag:blogger.com,1999:blog-5321868813881926203.post-81364735301148501912011-06-09T19:24:00.000+05:302011-06-09T20:11:10.552+05:30Google Music Beta Rolls Out in Europe<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://cdn.pocketnow.com/html/portal/news/0000017162//GoogleMusicBeta.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 480px;" src="http://cdn.pocketnow.com/html/portal/news/0000017162//GoogleMusicBeta.jpg" alt="" border="0" /></a><br /><br /><br />As you all know Google started the Google Cloud service in 2011's Google IO Event. Now Europeans have started to receive Google Music Beta invitations.<br /><br />Source: <a href="http://pocketnow.com/android/google-music-beta-reportedly-rolls-out-in-europe">Link</a><br /><br />If you are not from US or Europe and wanted to try out the Music Beta <a href="http://appinventor.blogspot.com/2011/06/guide-on-getting-google-music-beta.html">Follow this guide</a>.Anonymoushttp://www.blogger.com/profile/06900804780938915186noreply@blogger.com0tag:blogger.com,1999:blog-5321868813881926203.post-80928015588509506462011-04-03T11:06:00.000+05:302011-09-07T10:47:14.774+05:30How To Publish App Inventor Applications In The Android Market<a href="http://www.androidworld.it/wp-content/uploads/2010/10/appinventor-to-market-400x238.png"><img alt="" border="0" src="http://www.androidworld.it/wp-content/uploads/2010/10/appinventor-to-market-400x238.png" style="cursor: pointer; display: block; height: 238px; margin: 0px auto 10px; text-align: center; width: 400px;" /></a><br />
Publish the app created with App Inventor in the Android Market<br />
<br />
<span style="font-size: 100%;"><b>What you need:</b></span><br />
<br />
<ul>
<li>1.6 Java Development Kit and Runtime Environment 1.6 already installed on your PC</li>
<li>Android SDK already installed and running</li>
<li>Appinventor Extras</li>
<li>APKTool</li>
<li><a href="http://www.mediafire.com/?4bcadejyx8u1t2l">Auto-Sign 6.5</a></li>
</ul>
<br />
<span style="font-size: 100%;"><b>1) Creating the key</b></span><br />
<br />
This procedure is a one-off and we don't need to do those steps every time.<br />
<br />
So, thanks to the JAVA SDK we will create a private key, which will be used for publishing our applications<br />
<br />
From the Bin folder of the Java SDK we'll execute in a terminal:<br />
<pre style="background-image: URL(http://2.bp.blogspot.com/_z5ltvMQPaa8/SjJXr_U2YBI/AAAAAAAAAAM/46OqEP32CJ8/s320/codebg.gif); background: #f0f0f0; border: 1px dashed #CCCCCC; color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"><code style="color: black; word-wrap: normal;">1: keytool.exe -genkey -v -keystore my-release-key.keystore -alias aliasname -keyalg RSA -keysize 2048 -validity 10000
</code></pre>
<div class="bbcode_container">
<br />
The Market requires that applications need to publish the private key has a duration subsequent to October 22, 2033, so we'll use a validity of 10000 days (over 27 years!).</div>
<br />
<span style="font-size: 100%;"><b>2) Customize the Icon of the application</b></span><br />
<br />
Download the APK file on a local folder on your computer.<br />
<br />
We'll use AutoSigner for those steps: (thanks to Marcor Online <a href="mailto:info@marcoronline.tk">info@marcoronline.tk</a> for this part).<br />
<br />
Open the apk file with 7zip.<br />
<br />
Delete META-INF folder (which is the folder where the application contains the certificates, no longer valid after the change).<br />
<br />
The images are generally stored in the folder <b>res\drawable</b>, and in particular the icon of the program is called <b>ya.png</b>. Extract all the images you want with your favorite software (we use 7zip).<br />
<br />
Be careful not to change the size in pixels and not to change the name and extension.<br />
<br />
Once you have completed the changes you go to put the files again into the apk (using 7zip) by simply dragging and overwriting the original.<br />
<br />
Close 7zip and rename your program Launcher.apk.<br />
<br />
Extract the contents of the <b>Auto-Sign v0.65.exe</b> and copy the Launcher.apk file inside the folder <b>Auto-Sign\update\app</b>.<br />
<br />
<br />
Run the tool by the Auto-Sign v0.65.exe executable and iselect from the drop down menù <b>Launcher.apk</b>. (The name should been green. If not, you've made something wrong.)<br />
<br />
Now click on Autosign and in a few seconds you'll get a confirmation message.<br />
<br />
Inside the folder <b>Auto-Sign\update\app</b> will be a <b>Launcher_signed.apk</b>. You can delete the old file and keep only the signed one.<br />
<br />
<span style="font-size: 100%;"><b>3) Edit the APK to be compatible with the Market</b></span><br />
<br />
Decompile our apk<br />
<div class="bbcode_container">
<br />
<pre style="background-image: URL(http://2.bp.blogspot.com/_z5ltvMQPaa8/SjJXr_U2YBI/AAAAAAAAAAM/46OqEP32CJ8/s320/codebg.gif); background: #f0f0f0; border: 1px dashed #CCCCCC; color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"><code style="color: black; word-wrap: normal;">1: apktool -s pre-nomeapk.apk
</code></pre>
</div>
<br />
in the just created folder called pre-nomeapk, go editing the AndroidManifest.xml file.<br />
<br />
First we add the version of the application by adding the keyword "<i>android: versionCode</i>" and "<i>android: versionName</i>" in the keyword "<i>package</i>", just like this example:<br />
<br />
<pre style="background-image: URL(http://2.bp.blogspot.com/_z5ltvMQPaa8/SjJXr_U2YBI/AAAAAAAAAAM/46OqEP32CJ8/s320/codebg.gif); background: #f0f0f0; border: 1px dashed #CCCCCC; color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"><code style="color: black; word-wrap: normal;"> <? xml version = "1.0" encoding = "UTF-8"?>
<manifest xmlns: android = "http://schemas.android.com/apk/res/android" package = "appinventor.xyz.xyz" android:versionCode = "1" android:versionName = "1.0">
</code></pre>
<br />
Specify the minimum version of Android is needed to run the application. Beware that the Market has a bug at the moment, and does not support applications compiled for Froyo android 2.2. Consider the following table:<br />
<br />
<pre style="background-image: URL(http://2.bp.blogspot.com/_z5ltvMQPaa8/SjJXr_U2YBI/AAAAAAAAAAM/46OqEP32CJ8/s320/codebg.gif); background: #f0f0f0; border: 1px dashed #CCCCCC; color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"><code style="color: black; word-wrap: normal;"> API Level -> Android Platform Version
1 -> 1.0
2 -> 1.1
3 -> 1.5
4 -> 1.6
5 -> 2.0
6 -> 2.0.1
7 -> 2.1
8 -> 2.2
</code></pre>
<br />
If your application needs Eclair we enter the following keyword:<br />
<br />
<pre style="background-image: URL(http://2.bp.blogspot.com/_z5ltvMQPaa8/SjJXr_U2YBI/AAAAAAAAAAM/46OqEP32CJ8/s320/codebg.gif); background: #f0f0f0; border: 1px dashed #CCCCCC; color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"><code style="color: black; word-wrap: normal;"> <uses-sdk android:minSdkVersion="7" />
</code></pre>
<br />
Finally fix the last things needed to make compatible the apk to the Market
<br />
Remove the <b>android:icon</b> keyworld on this line:<br />
<br />
<pre style="background-image: URL(http://2.bp.blogspot.com/_z5ltvMQPaa8/SjJXr_U2YBI/AAAAAAAAAAM/46OqEP32CJ8/s320/codebg.gif); background: #f0f0f0; border: 1px dashed #CCCCCC; color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"><code style="color: black; word-wrap: normal;"> <activity android:label="123" android:icon="@drawable/ya" android:name=".Screen1">
</code></pre>
<br />
and add it in this line:
<br />
<div class="bbcode_container">
<pre class="bbcode_code" style="height: 36px;"><application android:label="XXXXX" android:debuggable="true"></pre>
Also on the line relative to the "application", remove the key "<i>android_: debuggable</i>"</div>
<br />
In the end the <b>AndroidManifest.xml</b> will result like this:<br />
<br />
<pre style="background-image: URL(http://2.bp.blogspot.com/_z5ltvMQPaa8/SjJXr_U2YBI/AAAAAAAAAAM/46OqEP32CJ8/s320/codebg.gif); background: #f0f0f0; border: 1px dashed #CCCCCC; color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"><code style="color: black; word-wrap: normal;"> <? xml version = "1.0" encoding = "UTF-8"?>
<manifest xmlns: android =
"http://schemas.android.com/apk/res/android"
package = "appinventor.xyz.xyz"
android:versionCode = "1"
android:versionName = "1.0">
<uses-sdk android:minSdkVersion="3" />
......
<application android:label="XXXX" android:icon="@drawable/ya">
<activity android:label="123" android:name=".Screen1">
....
</activity>
</application>
</manifest>
</code></pre>
<br />
Now compile the apk again:<br />
<br />
<div class="bbcode_container">
<pre style="background-image: URL(http://2.bp.blogspot.com/_z5ltvMQPaa8/SjJXr_U2YBI/AAAAAAAAAAM/46OqEP32CJ8/s320/codebg.gif); background: #f0f0f0; border: 1px dashed #CCCCCC; color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"><code style="color: black; word-wrap: normal;"> apktool b pre-nomeapk
</code></pre>
<br />
With 7zip open the apk and remove the file in the META-INF folder like:</div>
<br />
<div class="bbcode_container">
<pre style="background-image: URL(http://2.bp.blogspot.com/_z5ltvMQPaa8/SjJXr_U2YBI/AAAAAAAAAAM/46OqEP32CJ8/s320/codebg.gif); background: #f0f0f0; border: 1px dashed #CCCCCC; color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"><code style="color: black; word-wrap: normal;"> ANDROIDK.SF
ANDROIDK.RSA
</code></pre>
<br />
Source: <a href="http://www.androidworld.it/forum/app-inventor-91/%5Bhow-%5D-publish-app-created-app-inventor-android-market-4597/">Link</a>
</div>
Anonymoushttp://www.blogger.com/profile/06900804780938915186noreply@blogger.com15