Can't set my application to install on SD Card - Android Software Development

Dear All,
I'm launching my new application in Android Market, However, It's can't install on user SD Card. I can't figure it out why it is and how to solve it.
Here is the information
1. Project Build on Android 2.2 API
2. AndroidManifest.xml files is declared like this
<manifest xmlns:android="hxxp:........................"
package="freehand.letshammer" android:installLocation="preferExternal" android:versionName="1.2" android:versionCode="3">
<<.........>>
<uses-sdk android:minSdkVersion="3" />
<<.........>>
3. Total application size after install is ~14.8MB
If anyone have clue please give me some advise.
Best Regards,
Chet Chetchaiyan

Related

[HOW TO] Blacklist processes in WM

Hello,
I've got some windows mobile 5 handhelds that I'm running in kiosk mode. One of the applications that can be run from the kiosk has the ability to access Internet Explorer. I want to be able to disable internet explorer so even when the user tries to access this feature, IE will not pop-up.
From what I've seen while searching on google, there is no direct way to remove PIE or even disable it. I've searched ways to black list programs and found this link here: http://www.satter.org/2007/03/lets_shell_some.html. This seems like it would work. It's a registry fix but I can't seem to get the .CPF file to update the configuration on the handheld. The error I get is 'your device settings cannot be changed by Test.cpf'. I assume I need to sign the .CPF file but I am unsure how to do this exactly...
Any thoughts if this will work or other methods???
Thanks!
Zac
Ok so after looking into this further I learned the certificates in the WM5 and 6 SDK folders are outdated. I downloaded newer certificates and installled the updated certs.sdk to the handheld but the cpf file still will not work. The error now is: 'The program or setting could not be installed because it is not digitally signed with a trusted certificate.' The updated certs I got are all trusted (I think). The cert I am using is SDKSamplePrivDeveloper.pfx.
Nevermind, got it to work. I didn't need to do any signing at all, just needed to remove some not needed XML in my _setup.xml file.
For what it's worth, here's the XML to blacklist an application (in this case PIE):
Code:
<?xml version="1.0" encoding="utf-8" ?>
<wap-provisioningdoc>
<characteristic type="Registry">
<characteristic type="HKLM\Security\Policies\Shell">
<parm name="DisallowRun" value="1" datatype="integer" />
</characteristic>
<characteristic type="HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\DisallowRun">
<parm name="1" value="iexplore.exe" datatype="string" />
</characteristic>
</characteristic>
</wap-provisioningdoc>
Well done, solved your problem yourself, and in the mean time a new guide generated for people who wanted to do this.
Thansk
madnish30.
hi,
thanks for this tweak very interesting but i'm on WM 6.5.5 Titanium Energy Rom and there is no _setup.xml, can not find it so can not do this tweak or i missed something , could you help, be more explicit...
Second question, is there a possibility to know exactly witch applications, process are launch when windows start?
Thanks
V.
MakeCab Tutorial
voyd said:
hi,
thanks for this tweak very interesting but i'm on WM 6.5.5 Titanium Energy Rom and there is no _setup.xml, can not find it so can not do this tweak or i missed something , could you help, be more explicit...
Second question, is there a possibility to know exactly witch applications, process are launch when windows start?
Thanks
V.
Click to expand...
Click to collapse
Hello,
You create an XML file on your PC called _setup.xml and use makecab.exe that comes with the WM5/6 SDK from the command line to create a CAB file.
But, to make life simpler, I've attached this zip file which has makecab.exe, my _setup.xml, and also a task manager program you can run on WM that I've downloaded (it has a registry editor built into it too, which is convenient ).
To use:
1) Make any changes you need to _setup.xml
2) Run makecab.exe from the command line with this syntax: "makecab _setup.xml <'filename'.cab>"
3) Install this on the handheld, reboot device, run the program you've blacklisted and enjoy the access denied pop up!
Blacklist _setup.xml:
Code:
<?xml version="1.0" encoding="utf-8" ?>
<wap-provisioningdoc>
<characteristic type="Registry">
<characteristic type="HKLM\Security\Policies\Shell">
<parm name="DisallowRun" value="1" datatype="integer" />
</characteristic>
<characteristic type="HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\DisallowRun">
<parm name="1" value="iexplore.exe" datatype="string" /> <!-- change 'value' to whatever program you want blacklisted -->
<!-- <parm name="2" value="ANOTHER_PROGRAM.exe" datatype="string" /> -->
<!-- <parm name="3" value="YET_ANOTHER_PROGRAM.exe" datatype="string" /> -->
</characteristic>
</characteristic>
</wap-provisioningdoc>
Disable Backlist _setup.xml:
Code:
<?xml version="1.0" encoding="utf-8" ?>
<wap-provisioningdoc>
<characteristic type="Registry">
<!-- Disable DisallowRun -->
<characteristic type="HKLM\Security\Policies\Shell">
<parm name="DisallowRun" value="0" datatype="integer" />
</characteristic>
</characteristic>
</wap-provisioningdoc>
To answer your second question, most startup programs will be listed under the /Windows/StartUp folder.
Hope this helps!
madnish30 said:
Well done, solved your problem yourself, and in the mean time a new guide generated for people who wanted to do this.
Thansk
madnish30.
Click to expand...
Click to collapse
Thank you! Glad to help out!
another alternative
Hello people,
Here's another alternative which does not involve making cab files / fiddling with the registry (not all devices support this, since they are ROM_hardcoded);
WM5/6 command DONOTHiNG.EXE copy to device make shortcut link to Program Files
http://www.stephan-brenner.com/?p=190
Rename iexplore.exe to *.bak
Copy donothing.exe to \Windows\
Rename donothing.exe to iexplore.exe
done
Of course there are 101 other wonderfull 'solutions' to think of using donothing.exe
ThanX a ton for these wonder full wapprovisioning xml
FYC:
WinCE CAB Analyzer (MSCEInf): .CAB extraction
ExtenDir CABS .CAB creation (PgDn a bit) (optionally ExtenDir should be switched off if you're not using it!! )
Converting packages or your favorite tweaks to a setup cab was never so easy!
o/~
Senax said:
Hello people,
Here's another alternative which does not involve making cab files / fiddling with the registry (not all devices support this, since they are ROM_hardcoded);
WM5/6 command DONOTHiNG.EXE copy to device make shortcut link to Program Files
http://www.stephan-brenner.com/?p=190
Rename iexplore.exe to *.bak
Copy donothing.exe to \Windows\
Rename donothing.exe to iexplore.exe
done
Of course there are 101 other wonderfull 'solutions' to think of using donothing.exe
Click to expand...
Click to collapse
This method does work, the only concern I had with this was what if an administrator needs to get have access to that program that is overwritten? In my case if I overwrote iexpore.exe then I'd have no way of accessing the internet or downloading any vital programs (unless they were already installed before hand). My device had no way to USB connect and bluetooth file transferring was becoming a pain to get to work so that's why I used the CAB method downloading them first through PIE from a virtual directory then disabling PIE.
But hey, if you're sure you won't need PIE or any other program you want disable this method works great!
Thanks!
Or Batch iT
Why not make a batch file? Use a standard ASCII editor like Notepad.exe and copy + paste the following code (assuming running from C drive). Make sure Word-Wrap = OFF (always while editing (source))!
Code:
@ECHO OFF
@REM renaming of blacklisted application(s) back to original so one can operate executables as expected
C:
CD\
CD Windows\System32\
@REM Remember the short 8.3 filename (stick to that within batch files).
REN YourExecutable.exe donothin.exe
@REM Assuming you renamed original *.exe to *.e_e
REN YourExecutable.e_e Depends.exe
@REM Need to switch drives/partition? Just type its letter D: [ENTER] CD\ [so windows its current PATH is the root of the current drive].
:END
EXiT
Online DOS_Batch handbook
Senax said:
Why not make a batch file? Use a standard ASCII editor like Notepad.exe and copy + paste the following code (assuming running from C drive). Make sure Word-Wrap = OFF (always while editing (source))!
Code:
@ECHO OFF
@REM renaming of blacklisted application(s) back to original so one can operate executables as expected
C:
CD\
CD Windows\System32\
@REM Remember the short 8.3 filename (stick to that within batch files).
REN YourExecutable.exe donothin.exe
@REM Assuming you renamed original *.exe to *.e_e
REN YourExecutable.e_e Depends.exe
@REM Need to switch drives/partition? Just type its letter D: [ENTER] CD\ [so windows its current PATH is the root of the current drive].
:END
EXiT
Online DOS_Batch handbook
Click to expand...
Click to collapse
Nice! Very simple to use!

[Q]Updating a configuration xml file of an installed apk

Hi,
Is there any way to add/update a configuration xml file to an app already installed on an Android 4.0+ device?
The purpose of this would be to eliminate the setup process for technologically impaired users.
Case in point: an application through which the user can send data over wifi/3g to an IIS server, the user will have to configure the server address/location, username and password (which is generally void if it's not requested otherwise), the location of the actual data file that must be synced.
All i want to do is eliminate the part where the user has to set-up anything else but his username.
The configuration file is located in </Data/Data/application.name/files> and it's called application.config.xml
Could it be added in an apk which will act as an update?
The devices will not be rooted and the config.xml file will be different (different servers), depending on the users' location so it can't be hardcoded in the sync application.
This is the actual content of the .xml file once the settings have been made, the sync app generates a blank config.xml file during the installation.
Code:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings>
<add key="ClientLocation" value="/storage/emulated/0/clientapp_00" />
<add key="Username" value="User Name" />
<add key="Password" value="d41d8cd98f00b204e9800998ecf8427e" />
<add key="ServerLocation" value="Http://192.168.0.101:55541/server/sync.aspx" />
<add key="Compression" value="True" />
<add key="ServerConnections" value="Sync Serv,Http://192.168.0.101:55541/server/sync.aspx" />
<add key="Language" value="en" />
<add key="SyncApk" value="Sync.apk" />
<add key="SyncPackage" value="Data.Sync" />
</appSettings>
</configuration>
Thanks in advance!
*I've also posted in the Q/A forum, but nobody replied.
One app cannot access the data of another app (without root). So you cannot create something like an update apk for another app.
You need to be the owner of the app and put that into the code. Then your users will have to update and in your code you can save the new file.

Windows Phone Preview for Developers XAP contents

Context: http://blogs.windows.com/windows_ph...ing-windows-phone-preview-for-developers.aspx
http://www.windowsphone.com/en-us/s...velopers/178ac8a1-6519-4a0b-960c-038393741e96
For those curious, here's the contents of the Windows Phone Preview for Developers XAP.
View attachment previewprogram.zip
:cyclops:
SamWP8 Tools already have this function. :laugh:
Code:
<Capability Name="ID_CAP_RUNTIME_CONFIG" />
and .winmd are the most interesting parts.

AdMob Issues - Logcat

Hello Frieds,
Today while I tried to integrate Admob in my app...
Im Facing this error while running the app in Emulator.
http://pastebin.com/Tbg06tdR
This is the code that I have put up in my XML.
Code:
<com.google.ads.AdView
android:id="@+id/adView"
android:layout_alignParentBottom="true"
android:layout_below="@+id/gridView"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
ads:adUnitId="a155465208dx522s"
ads:adSize="BANNER"
ads:loadAdOnCreate="true"
/>
You have an error at line 27. Want a hint? For integrate AdMob into your Android application follow this method:
Into your layout insert
Code:
<LinearLayout
android:id="@+id/ads"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:gravity="bottom"/>
Into your Activity insert
Code:
AdView adView = new AdView(this, AdSize.BANNER, "your_id");
LinearLayout layout = (LinearLayout)findViewById(R.id.ads);
layout.addView(adView);
adView.loadAd(new AdRequest());
This is a very quickly and efficient way to integrate AdMob.
CrotaNexus said:
You have an error at line 27. Want a hint? For integrate AdMob into your Android application follow this method:
Into your layout insert
Code:
<LinearLayout
android:id="@+id/ads"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:gravity="bottom"/>
Into your Activity insert
Code:
AdView adView = new AdView(this, AdSize.BANNER, "your_id");
LinearLayout layout = (LinearLayout)findViewById(R.id.ads);
layout.addView(adView);
adView.loadAd(new AdRequest());
This is a very quickly and efficient way to integrate AdMob.
Click to expand...
Click to collapse
Thanks that worked...Actually the main issue was that the SDK was not properly getting integrated in the app.
Solution
Go to Project Properties :
Then Built Path : Order and Export and select AdMob SDK there...
Click to expand...
Click to collapse
But I will be going Java way only. Just 1 thing any suggestion for using this for every layout as I dont want to create the Layout in every xml file as well as repeating the code in every java file too.
coolbud012 said:
Just 1 thing any suggestion for using this for every layout as I dont want to create the Layout in every xml file as well as repeating the code in every java file too.
Click to expand...
Click to collapse
I have never tried but you can make a layout that has the LinearLayout inside and after, into the desidered layout, include it with include tag. For the Java code, instead, you can try to do a method and pass the LinearLayout. I don't know if these solutions work. Try yourself.
CrotaNexus said:
I have never tried but you can make a layout that has the LinearLayout inside and after, into the desidered layout, include it with include tag. For the Java code, instead, you can try to do a method and pass the LinearLayout. I don't know if these solutions work. Try yourself.
Click to expand...
Click to collapse
I know about include..Trying to figure it out what should I do exactly...
BTW thanks
coolbud012 said:
I know about include..Trying to figure it out what should I do exactly...
BTW thanks
Click to expand...
Click to collapse
Make a custom view which extends LinearLayout ( or maybe FrameLayout would be better?) And have it create the adview as child with id and stuff you need. Then you just need to copy paste the XML tag into every layout file.

Edit AndroidManifest.xml from apk file and rebuild

Hi everybody,
I create a web app for my website (forum) from this site appsgeyser.com. (everything are perfect but.... ) I want to add extra permissions into AndroidManifest.xml
I try with apktool with this command to decompile first.
apktool d myapp.apk
this command was created a folder. I add extra permissions into the AndroidManifest.xml
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
I put these permissions because my website is forum and I use to upload photos from mobile.
For compilation I use this command
apktool b myappFolder myapp_extra_perm.apk
I try to install to my mobile (nexus 5). Error the app doesn't installed. :crying:
Please help me.
EDIT
I managed thanks for your help.

Categories

Resources