Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
O
opencv
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
opencv
Commits
ec6f0e1b
Commit
ec6f0e1b
authored
Apr 10, 2013
by
Alexander Smorkalov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Incompatible hardware detetction added to OpenCV Manager(Feature #2941)
parent
aef8e6ba
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
135 additions
and
42 deletions
+135
-42
BinderConnector.java
...service/engine/src/org/opencv/engine/BinderConnector.java
+31
-11
HardwareDetector.java
...ervice/engine/src/org/opencv/engine/HardwareDetector.java
+12
-4
OpenCVEngineService.java
...ice/engine/src/org/opencv/engine/OpenCVEngineService.java
+39
-8
ManagerActivity.java
...engine/src/org/opencv/engine/manager/ManagerActivity.java
+53
-19
No files found.
android/service/engine/src/org/opencv/engine/BinderConnector.java
View file @
ec6f0e1b
...
...
@@ -4,23 +4,43 @@ import android.os.IBinder;
public
class
BinderConnector
{
public
BinderConnector
(
MarketConnector
Market
)
{
Init
(
Market
);
public
BinderConnector
(
MarketConnector
Market
)
{
mMarket
=
Market
;
}
public
boolean
Init
()
{
boolean
result
=
false
;
if
(
mIsReady
)
result
=
Init
(
mMarket
);
return
result
;
}
public
native
IBinder
Connect
();
public
boolean
Disconnect
()
{
Final
();
return
true
;
}
if
(
mIsReady
)
Final
();
static
{
System
.
loadLibrary
(
"OpenCVEngine"
);
System
.
loadLibrary
(
"OpenCVEngine_jni"
);
return
mIsReady
;
}
private
native
boolean
Init
(
MarketConnector
Market
);
public
native
void
Final
();
private
native
void
Final
();
private
static
boolean
mIsReady
=
false
;
private
MarketConnector
mMarket
;
static
{
try
{
System
.
loadLibrary
(
"OpenCVEngine"
);
System
.
loadLibrary
(
"OpenCVEngine_jni"
);
mIsReady
=
true
;
}
catch
(
UnsatisfiedLinkError
e
)
{
mIsReady
=
false
;
e
.
printStackTrace
();
}
}
}
android/service/engine/src/org/opencv/engine/HardwareDetector.java
View file @
ec6f0e1b
...
...
@@ -47,9 +47,17 @@ public class HardwareDetector
public
static
native
int
DetectKnownPlatforms
();
static
{
System
.
loadLibrary
(
"OpenCVEngine"
);
System
.
loadLibrary
(
"OpenCVEngine_jni"
);
public
static
boolean
mIsReady
=
false
;
static
{
try
{
System
.
loadLibrary
(
"OpenCVEngine"
);
System
.
loadLibrary
(
"OpenCVEngine_jni"
);
mIsReady
=
true
;
}
catch
(
UnsatisfiedLinkError
e
)
{
mIsReady
=
false
;
e
.
printStackTrace
();
}
}
}
android/service/engine/src/org/opencv/engine/OpenCVEngineService.java
View file @
ec6f0e1b
...
...
@@ -3,31 +3,62 @@ package org.opencv.engine;
import
android.app.Service
;
import
android.content.Intent
;
import
android.os.IBinder
;
import
android.os.RemoteException
;
import
android.util.Log
;
public
class
OpenCVEngineService
extends
Service
{
private
static
final
String
TAG
=
"OpenCVEngine/Service"
;
private
IBinder
mEngineInterface
;
private
IBinder
mEngineInterface
=
null
;
private
MarketConnector
mMarket
;
private
BinderConnector
mNativeBinder
;
public
void
onCreate
()
{
public
void
onCreate
()
{
Log
.
i
(
TAG
,
"Service starting"
);
super
.
onCreate
();
Log
.
i
(
TAG
,
"Engine binder component creating"
);
mMarket
=
new
MarketConnector
(
getBaseContext
());
mNativeBinder
=
new
BinderConnector
(
mMarket
);
mEngineInterface
=
mNativeBinder
.
Connect
();
Log
.
i
(
TAG
,
"Service started successfully"
);
if
(
mNativeBinder
.
Init
())
{
mEngineInterface
=
mNativeBinder
.
Connect
();
Log
.
i
(
TAG
,
"Service started successfully"
);
}
else
{
Log
.
e
(
TAG
,
"Cannot initialize native part of OpenCV Manager!"
);
Log
.
e
(
TAG
,
"Using stub instead"
);
mEngineInterface
=
new
OpenCVEngineInterface
.
Stub
()
{
@Override
public
boolean
installVersion
(
String
version
)
throws
RemoteException
{
// TODO Auto-generated method stub
return
false
;
}
@Override
public
String
getLibraryList
(
String
version
)
throws
RemoteException
{
// TODO Auto-generated method stub
return
null
;
}
@Override
public
String
getLibPathByVersion
(
String
version
)
throws
RemoteException
{
// TODO Auto-generated method stub
return
null
;
}
@Override
public
int
getEngineVersion
()
throws
RemoteException
{
return
-
1
;
}
};
}
}
public
IBinder
onBind
(
Intent
intent
)
{
public
IBinder
onBind
(
Intent
intent
)
{
Log
.
i
(
TAG
,
"Service onBind called for intent "
+
intent
.
toString
());
return
mEngineInterface
;
}
public
boolean
onUnbind
(
Intent
intent
)
{
Log
.
i
(
TAG
,
"Service onUnbind called for intent "
+
intent
.
toString
());
...
...
android/service/engine/src/org/opencv/engine/manager/ManagerActivity.java
View file @
ec6f0e1b
...
...
@@ -42,6 +42,26 @@ public class ManagerActivity extends Activity
@Override
public
void
onCreate
(
Bundle
savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
);
if
(!
HardwareDetector
.
mIsReady
)
{
Log
.
e
(
TAG
,
"Cannot initialize native part of OpenCV Manager!"
);
AlertDialog
dialog
=
new
AlertDialog
.
Builder
(
this
).
create
();
dialog
.
setTitle
(
"OpenCV Manager Error"
);
dialog
.
setMessage
(
"OpenCV Manager is incompatible with this device. Please replace it with an appropriate package."
);
dialog
.
setCancelable
(
false
);
dialog
.
setButton
(
"OK"
,
new
DialogInterface
.
OnClickListener
()
{
public
void
onClick
(
DialogInterface
dialog
,
int
which
)
{
finish
();
}
});
dialog
.
show
();
return
;
}
setContentView
(
R
.
layout
.
main
);
TextView
OsVersionView
=
(
TextView
)
findViewById
(
R
.
id
.
OsVersionValue
);
...
...
@@ -186,6 +206,20 @@ public class ManagerActivity extends Activity
}
});
mPackageChangeReciever
=
new
BroadcastReceiver
()
{
@Override
public
void
onReceive
(
Context
context
,
Intent
intent
)
{
Log
.
d
(
"OpenCVManager/Reciever"
,
"Bradcast message "
+
intent
.
getAction
()
+
" reciever"
);
Log
.
d
(
"OpenCVManager/Reciever"
,
"Filling package list on broadcast message"
);
if
(!
bindService
(
new
Intent
(
"org.opencv.engine.BIND"
),
new
OpenCVEngineServiceConnection
(),
Context
.
BIND_AUTO_CREATE
))
{
TextView
EngineVersionView
=
(
TextView
)
findViewById
(
R
.
id
.
EngineVersionValue
);
EngineVersionView
.
setText
(
"not avaliable"
);
}
}
};
IntentFilter
filter
=
new
IntentFilter
();
filter
.
addAction
(
Intent
.
ACTION_PACKAGE_ADDED
);
filter
.
addAction
(
Intent
.
ACTION_PACKAGE_CHANGED
);
...
...
@@ -199,17 +233,23 @@ public class ManagerActivity extends Activity
@Override
protected
void
onDestroy
()
{
super
.
onDestroy
();
unregisterReceiver
(
mPackageChangeReciever
);
if
(
mPackageChangeReciever
!=
null
)
unregisterReceiver
(
mPackageChangeReciever
);
}
@Override
protected
void
onResume
()
{
super
.
onResume
();
Log
.
d
(
TAG
,
"Filling package list on resume"
);
if
(!
bindService
(
new
Intent
(
"org.opencv.engine.BIND"
),
new
OpenCVEngineServiceConnection
(),
Context
.
BIND_AUTO_CREATE
))
{
TextView
EngineVersionView
=
(
TextView
)
findViewById
(
R
.
id
.
EngineVersionValue
);
EngineVersionView
.
setText
(
"not avaliable"
);
if
(
HardwareDetector
.
mIsReady
)
{
Log
.
d
(
TAG
,
"Filling package list on resume"
);
OpenCVEngineServiceConnection
connection
=
new
OpenCVEngineServiceConnection
();
if
(!
bindService
(
new
Intent
(
"org.opencv.engine.BIND"
),
connection
,
Context
.
BIND_AUTO_CREATE
))
{
Log
.
e
(
TAG
,
"Cannot bind to OpenCV Manager service!"
);
TextView
EngineVersionView
=
(
TextView
)
findViewById
(
R
.
id
.
EngineVersionValue
);
if
(
EngineVersionView
!=
null
)
EngineVersionView
.
setText
(
"not avaliable"
);
unbindService
(
connection
);
}
}
}
...
...
@@ -225,19 +265,7 @@ public class ManagerActivity extends Activity
protected
int
ManagerApiLevel
=
0
;
protected
String
ManagerVersion
;
protected
BroadcastReceiver
mPackageChangeReciever
=
new
BroadcastReceiver
()
{
@Override
public
void
onReceive
(
Context
context
,
Intent
intent
)
{
Log
.
d
(
"OpenCVManager/Reciever"
,
"Bradcast message "
+
intent
.
getAction
()
+
" reciever"
);
Log
.
d
(
"OpenCVManager/Reciever"
,
"Filling package list on broadcast message"
);
if
(!
bindService
(
new
Intent
(
"org.opencv.engine.BIND"
),
new
OpenCVEngineServiceConnection
(),
Context
.
BIND_AUTO_CREATE
))
{
TextView
EngineVersionView
=
(
TextView
)
findViewById
(
R
.
id
.
EngineVersionValue
);
EngineVersionView
.
setText
(
"not avaliable"
);
}
}
};
protected
BroadcastReceiver
mPackageChangeReciever
=
null
;
protected
class
OpenCVEngineServiceConnection
implements
ServiceConnection
{
...
...
@@ -246,6 +274,12 @@ public class ManagerActivity extends Activity
public
void
onServiceConnected
(
ComponentName
name
,
IBinder
service
)
{
OpenCVEngineInterface
EngineService
=
OpenCVEngineInterface
.
Stub
.
asInterface
(
service
);
if
(
EngineService
==
null
)
{
Log
.
e
(
TAG
,
"Cannot connect to OpenCV Manager Service!"
);
unbindService
(
this
);
return
;
}
try
{
ManagerApiLevel
=
EngineService
.
getEngineVersion
();
}
catch
(
RemoteException
e
)
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment